MYSQL:您可以从4个表达式中提取3个匹配的结果吗? [英] MYSQL: Can you pull results that match like 3 out of 4 expressions?
本文介绍了MYSQL:您可以从4个表达式中提取3个匹配的结果吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
说我有一个这样的查询:
Say I have a query like this:
SELECT * FROM my_table WHERE name = "john doe" AND phone = "8183321234" AND email = "johndoe@yahoo.com" AND address = "330 some lane";
但是说我只需要4个中的3个就可以匹配,我知道我可以用几个OR编写一个很长的查询,但是我想知道是否有此功能吗?
But say I only need 3 out of the 4 to match, I know I can write a very long query with several ORs but I was wondering if there was a feature for this?
谢谢.
推荐答案
SELECT
*
FROM
my_table
WHERE
CASE WHEN name = "john doe" THEN 1 ELSE 0 END +
CASE WHEN phone = "8183321234" THEN 1 ELSE 0 END +
CASE WHEN email = "johndoe@yahoo.com" THEN 1 ELSE 0 END +
CASE WHEN address = "330 some lane" THEN 1 ELSE 0 END
>= 3;
侧面说明:这很可能无法有效地使用索引.另一方面,无论如何,这些列上都没有索引.
Side note: this will very likely not be using indexes efficiently. On the other hand, there will very likely be no indexes on these kinds of columns anyway.
这篇关于MYSQL:您可以从4个表达式中提取3个匹配的结果吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文