1.返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。CONCAT允许只有一个输入参数的情况。
因此,MySQL单表多字段模糊查询可以通过下面这个SQL查询实现
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%关键字%’
2.如果这三个字段中有值为NULL,则返回的也是NULL,那么这一条记录可能就会被错过,怎么处理呢,我这边使用的是IFNULL进行判断,则sql改为:
<pre name="code" class="sql">SELECT * FROM `magazine` WHERE CONCAT(IFNULL(`title`,''),IFNULL(`tag`,''),IFNULL(`description`,'')) LIKE ‘%关键字%’
selectcol1,col2,col3
from
test
像这种将需要查询出的字段名列举出来即可,
欢迎追问,满意请采纳
数据结构设置的不太合理,查询效率会比较低,假设表名分别是images和products
请参考下列语句:
select a.thumbnailId,
(select path from images where id=a.thumbnailId)
as thumbnailPath,t. imageId,
t.imagePath from products a
left join
(select b.imageId,group_concat(c.path) as imagePath
from products b,images c
where b.imageId like concat('%',c.id,'%') group by b.imageId) t
on a.imageId=t.imageId
实际测试如下:
测试代码
images源数据
products源数据
输出效果
说明:图片ID要统一ID位数(如试验中全部统一为4位图片ID),输出才准确
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)