SQL拼串查询

来源:互联网 发布:淘宝唐人阁vip账号 编辑:程序博客网 时间:2024/04/29 16:46

最近在做一些小型的系统,因为用的是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)


1 0
原创粉丝点击