如果值有逗号,如何使用FIND_IN_SET?

时间:2012-12-14 02:51:18

标签: php mysql sql select sql-order-by

我想使用函数FIND_IN_SET来“查询ORDER BY”来自查询的mysql结果,问题是这些值里面的COMMAS是这样的:

valu,e1
value,2
va,lue3
val,ue4

现在当我进行查询时,我这样做:

SELECT * FROM table ORDER BY FIND_IN_SET( column, 'valu,e1,value,2,va,lue3,val,ue4' );

正如您所看到的,“,”用于分隔值,但值中包含“,”......

我尝试了一些没有成功的解决方案:

SELECT * FROM table ORDER BY FIND_IN_SET( column, 'valu\,e1,value\,2,va\,lue3,val\,ue4' );

SELECT * FROM table ORDER BY FIND_IN_SET( column, '\'valu,e1\',\'value,2\',\'va,lue3\',\'val,ue4\'' );

但是,这一切都运行良好!

你知道这个的正确解决方案是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

我相信这个功能是正确的答案/方式:

SELECT * 
FROM table 
ORDER BY FIELD( 
   column, 'valu,e1', 'value,2', 'va,lue3', 'val,ue4' 
);