我有以下代码,迫使我将值从最低到最高排序。

$values = '4|2|7|1|20';

$test = $db->QueryFetchArrayAll("SELECT id FROM user WHERE (CONCAT(',', id, ',') REGEXP ',($values),')");

foreach ($test as $test_as) {
  echo $test_as['id'].',';
}

// Output:
1,2,4,7,20

// Should be same as string values:
4,2,7,1,20


如何停止默认情况下的订购并按values进行订购?

最佳答案

添加一个

ORDER BY FIELD(id,4,2,7,1,20);

给你的SELECT。
在进行4个测试时,您仍然应该使用准备好的语句。

关于mysql - 如何停止订购CONCAT REGEXP MySQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58223187/

10-16 14:36