mysql 学习

1.mysql 查询语句中设置变量
SELECT id INTO @img_id FROM item_img WHERE item_id=‘1’ AND img_url =‘1’;
2.mysql 查看变量数据
SELECT @img_id
3. mysql 判断数据是否存在 如果不存在则添加 如果存在则修改 函数 ON DUPLICATE KEY UPDATE
INSERT INTO item_img ( img_url, item_id, ca_id)
VALUES
( ‘1’,@item_id ,@category_id)
ON DUPLICATE KEY UPDATE
img_url = ‘11’,
item_id = @item_id,
ca_id = @category_id ;

    @item_id 和 @category_id为之前设置的变量

4.mysql 如何指定参数之间的分隔符
使用函数CONCAT_WS()。使用语法为:CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。
set @prop_value_arr = NULL;
set @prop_value_arr = CONCAT_WS(’,’,@prop_value_arr,11);
set @prop_value_arr = CONCAT_WS(’,’,@prop_value_arr,22);
输出
select @prop_value_arr 为 11,22

5.mysql 在不能添加索引不能使用 ON DUPLICATE KEY UPDATE 情况下 判断数据是否存在 如果不存在则添加 如果存在则修改
解决方式: 添加储存过程
例如:
// 添加储存过程(函数)
create procedure getItems(shop_id_val int(11), title_val varchar(64), remark_val varchar(128))
BEGIN
declare item_id_val float;
SELECT item_id into item_id_val FROM me_item where shop_id=shop_id_val AND title = title_val;
if item_id_val is NULL then
SELECT 1;
INSERT INTO me_item(shop_id, title,remark) VALUES(shop_id_val, title_val, remark_val);
else
SELECT 2;
UPDATE me_item SET shop_id = shop_id_val, title = title_val, remark=remark_val WHERE title=title_val;
end if;
END;

// 删除储存过程如果存在则删除(函数)
drop procedure if exists getItemsImg;
// 调用储存过程(函数)
CALL getItems(100,‘标题4’,‘备注6’);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值