0

関数 FIND_IN_SET を使用して、クエリから mysql の結果を "ORDER BY" したいのですが、問題は、値に次のような 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\'' );

しかし、それはうまくいきました!

これに対する正しい解決策は何ですか?ありがとう!

4

1 に答える 1

0

私はこの関数が正しい答え/方法であると信じています:

SELECT * 
FROM table 
ORDER BY FIELD( 
   column, 'valu,e1', 'value,2', 'va,lue3', 'val,ue4' 
);
于 2012-12-14T02:58:32.847 に答える