我有一个名为 email 的表,我可以从中获取电子邮件。 该表按此顺序包含电子邮件
现在如果我进行此查询
SELECT * FROM email WHERE (email IN ( '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="29485a4d48694e44484045480746444a" rel="noreferrer noopener nofollow">[email protected]</a>' ,'<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1223202152766173763c717d7f" rel="noreferrer noopener nofollow">[email protected]</a>' , '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e98788848ca98e84888085c78a8684" rel="noreferrer noopener nofollow">[email protected]</a>' )) AND email!='' LIMIT 3
我明白了
但我想根据 IN clause
中的参数获得结果
如果您注意到 IN
我提到<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="660715020726010b070f0a0748090b05" rel="noreferrer noopener nofollow">[email protected]</a>
第一的,
我认为 order by 条款对我没有帮助
还有其他方法可以解决这个问题吗?
最佳答案
一种可能的方法是使用 FIELD() MySQL 函数:
SELECT *
FROM email
WHERE FIELD(email, '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cdacbea9ac8daaa0aca4a1ace3a2a0ae" rel="noreferrer noopener nofollow">[email protected]</a>', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b8898a8bf8dccbd9dc96dbd7d5" rel="noreferrer noopener nofollow">[email protected]</a>', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1f717e727a5f78727e7673317c7072" rel="noreferrer noopener nofollow">[email protected]</a>') <> 0
ORDER BY FIELD(email, '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a7c6d4c3c6e7c0cac6cecbc689c8cac4" rel="noreferrer noopener nofollow">[email protected]</a>', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2b1a19186b4f584a4f05484446" rel="noreferrer noopener nofollow">[email protected]</a>', '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bdd3dcd0d8fddad0dcd4d193ded2d0" rel="noreferrer noopener nofollow">[email protected]</a>');
如FIELD
如果第一个参数不等于任何其他参数,则返回 0,FIELD(str, 'aaa', 'bbb'...) <> 0
子句大致相当于 str IN ('aaa', 'bbb')
.
关于php - PHP MYSQL 中的 SQL 语句排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837213/