MYSQL查一个字段中 多个值

MYSQL查一个字段中 多个值,第1张

下面两种情况:1.返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有null值,就返回null。concat允许只有一个输入参数的情况。因此,mysql单表多字段模糊查询可以通过下面这个sql查询实现select*from`magazine`whereconcat(`title`,`tag`,`description`)like‘%关键字%’2.如果这三个字段中有值为null,则返回的也是null,那么这一条记录可能就会被错过,怎么处理呢,我这边使用的是ifnull进行判断,则sql改为:select*from`magazine`whereconcat(ifnull(`title`,''),ifnull(`tag`,''),ifnull(`description`,''))like‘%关键字%’评论000加载更多

$total=0 //预设变量,用于存放累加结果

$sql="查询语句"

$sql=mysql_query($sql)

while($as=mysql_fetch_array($sql)){

$total=$total+$as[0]

}

还有一种办法更好,假如你要累加的字段名为 price, 则:

$sql="select sum(price) as total from 表名 where 条件"

$sql=mysql_query($sql)

$as=mysql_fetch_array($sql)

$as['total']..... //这里就是你想要的累加结果,直接让 mysql 做了,php里你就省去循环取值,估计效率好些。

数据结构设置的不太合理,查询效率会比较低,假设表名分别是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),输出才准确


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7501528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存