PHP MYSQL 中排序的 SQL 语句

标签: sql MySQL PHP
发布时间: 2015/6/11 23:21:08
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有个表称为从中我获取电子邮件的电子邮件。 表在此订单中有电子邮件

  1. 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

name@gmail.com

但我想要得到结果中的参数 IN clause 如果你注意到在 IN 我提到 asda@gmaila.omc 首先,我不认为由子句的顺序将帮助我在这里任何其他方式解决这一问题的?

解决方法 1:

一种可能的方法使用FIELD() 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');

作为 FIELD 返回 0,如果第一个参数不等于其他任何 FIELD(str, 'aaa', 'bbb'...) <> 0 子句是大致相当于 str IN ('aaa', 'bbb')

赞助商