0

SQL 表:产品

+--+------------+
|id| product_id |
+--+------------+
|1 | 689        |
|2 | 616,22,38  |
|3 | 666        |
|4 | 234,789    |
+--+------------+

SQL查询:

$id_pro= 23;
$sql = "UPDATE products SET product_id = CONCAT_WS(',',product_id, '$id_pro') WHERE id=3"; 

结果:

+--+------------+
|id| product_id |
+--+------------+
|1 | 689        |
|2 | 616,22,38  |
|3 | 666,23     |
|4 | 234,789    |
+--+------------+

问题:如果product_id以逗号结尾:

+--+------------+
|id| product_id |
+--+------------+
|1 | 689        |
|2 | 616,22,38  |
|3 | 666,       |
|4 | 234,789    |
+--+------------+

结果是这样的:

+--+------------+
|id| product_id |
+--+------------+
|1 | 689        |
|2 | 616,22,38  |
|3 | 666,,23    |
|4 | 234,789    |
+--+------------+

我该如何解决这个问题,并让查询检测该行是否以逗号结尾并忽略它?

4

1 回答 1

3

尝试使用REPLACE()

 REPLACE(CONCAT_WS(',',product_id, '$id_pro'), ',,', ',')
于 2013-09-18T23:30:45.473 回答