PHP-MYSQL中SQL语句的排序
我有一个名为email的表,我从中获取电子邮件。 表中的电子邮件按此顺序排列PHP-MYSQL中SQL语句的排序,php,mysql,sql,select,sql-order-by,Php,Mysql,Sql,Select,Sql Order By,我有一个名为email的表,我从中获取电子邮件。 表中的电子邮件按此顺序排列 asda@gmaila.omc 123@dsad.com name@gmail.com 现在如果我提出这个问题 SELECT * FROM email WHERE (email IN ( 'asda@gmaila.omc' ,'123@dsad.com' , 'name@gmail.com' )) AND email!='' LIMIT 3 我明白了 123@dsad.com asda@gmaila.omc nam
name@gmail.com
SELECT * FROM email WHERE (email IN ( 'asda@gmaila.omc' ,'123@dsad.com' , 'name@gmail.com' )) AND email!='' LIMIT 3
我明白了
123@dsad.com
asda@gmaila.omc
name@gmail.com
但是我想根据in子句中的参数得到结果
如果您注意到我在中提到的asda@gmaila.omc
首先,
我认为按条款订货对我没有帮助
解决此问题的任何其他方法?一种可能的方法是使用MySQL函数:
SELECT *
FROM email
WHERE FIELD(email, 'asda@gmaila.omc', '123@dsad.com', 'name@gmail.com') <> 0
ORDER BY FIELD(email, 'asda@gmaila.omc', '123@dsad.com', 'name@gmail.com');
选择*
从电子邮件
WHERE字段(电子邮件,'asda@gmaila.omc', '123@dsad.com', 'name@gmail.com') 0
按字段订购(电子邮件,'asda@gmaila.omc', '123@dsad.com', 'name@gmail.com');
由于
FIELD
返回0,如果它的第一个参数不等于任何其他参数,FIELD(str,'aaa','bbb'…)0
子句大致相当于str IN('aaa','bbb')
表按此顺序启用您可能有RowID或时间戳吗?您的排序依据是什么?@astater它既有时间戳又有行ID,但我想根据in语句中提供的参数进行排序。@raina660w in和where子句现在在哪里?它在LIMIT
中。实际上,您检查过了吗?更新后的答案有效,0做了什么?我知道这等于=用解释再次更新答案。)简而言之,FIELD
用于排序(显然)和从结果集中过滤出不需要的字符串(在上一版本中,我对LIMIT 3
子句也做了同样的操作)。好奇FIELD
是否会在email
列上使用索引,或者这是否等于seq。扫描