MySql表具有2个字段:id
,value
。
例如,我有一个带有值的数组:
$arr = ['BMW','Audi','Opel'...]
我需要按记录中值的顺序更改记录ID。
例如:
之前:
id value
12, 'Audi'
18, 'BMW'
32, 'Opel'
之后:
id value
18, 'Audi'
12, 'BMW'
32, 'Opel'
ORDER BY id将返回数组中的记录...
答案 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')