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 ‘%关键字%’
$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里你就省去循环取值,估计效率好些。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)