MYSQL:您可以从4个表达式中提取3个匹配的结果吗? [英] MYSQL: Can you pull results that match like 3 out of 4 expressions?

查看:72
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆