SQL拼串查询

最近在做一些小型的系统,因为用的是SSM框架,所以SQL都是自己动手写的。在做模糊查询的时候,老大告诉了一个牺牲查询效率的取巧方法:就是 拼接查询条件。

如  SELECT * FROM table WHERE id+name+phone LIKE #{param}

上面接在 WHERE 后面的对比条件使用字符串拼接的形式来拼的。但是这里有个坑。

那就是  不同数据库之间  字符串拼接函数不一样!

这里做个标记   以供以后查询:

SQL SERVER:用加号(+)拼接字符串的。并且对数据类型有要求。一般用CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:CAST(字段名 AS TYPE)  CONVERT(字段名,TYPE)。

MYSQL :使用CONCAT(STR1,STR2.....)来拼接字符串的,并且发现一个有趣的现象,参数可以直接放int类型,原因不知,可能是因为可以隐转。

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL

如果所有参数均为非二进制字符串,则结果为非二进制字符串。 
如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值