PHP+MYSQL如何在查询的结果集中前后加上字符。

ASP中,语句可以这样写。
select id from 商品分类 where ','+所有父ID+',' like '%,"&spid&",%'
我里面的数据如图:
PHP中要如何写呢?

有两种方式进行字符添加:

第一种:在PHP中遍历数据,然后对字段进行字符串操作从而达到目标

第二种:直接在SQL语句中使用函数对字段的结果进行处理


例1- PHP遍历方式

//假设$rows是结果集
foreach ($rows as &$row) {
    $row['column'] = sprintf("前面%s后面", $row['column']); //方法1.1
    $row['column2'] = "前面{$row['column2]}后面"; //方法1.2
}

foreach语句中的&$row表示此时是对原始数据的引用,因此在循环中修改$row的值之后$rows中的数据会相应变化。


例2- SQL语句

SELECT 
    CONCAT("前面", IF(`column` IS NULL, '', `column`), "后面") AS `column` 
FROM tablename

注意CONCAT方法中使用了IF语句进行NULL值的判定,根据需要可以自行更改。

CONCAT方法可以有任意个参数,但是任何一个参数的值为NULL则最后的结果为NULL,所以有可能要对NULL进行处理。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-28
select id from [table] where concat(',', [所有父ID], ',') like ('%XXX%');

#CONCAT 为mysql函数本回答被提问者和网友采纳
相似回答