如何更改mysql表中的ID顺序(按值对记录进行排序)

时间:2020-10-13 09:48:50

标签: mysql sql string sql-order-by where-clause

MySql表具有2个字段:idvalue

例如,我有一个带有值的数组:

$arr = ['BMW','Audi','Opel'...]

我需要按记录中值的顺序更改记录ID。

例如:

之前:

id  value
12, 'Audi'
18, 'BMW'
32, 'Opel'

之后:

id  value
18, 'Audi'
12, 'BMW'
32, 'Opel'

ORDER BY id将返回数组中的记录...

1 个答案:

答案 0 :(得分:0)

如果要将值作为列表传递给查询,则可以使用field()

select *
from mytable 
where value in ('BMW', 'Audi', 'Opel')
order by field(value, 'BMW', 'Audi', 'Opel')

如果您要使用逗号分隔的字符串,请使用find_in_set()

select *
from mytable 
where find_in_set(value, 'BMW, Audi, Opel')
order by find_in_set(value, 'BMW, Audi, Opel')