MySQL,其中2/x
我怎样才能只得到行,其中2个(或更多)where子句的many是真的 例如:MySQL,其中2/x,mysql,sql,select,where-clause,Mysql,Sql,Select,Where Clause,我怎样才能只得到行,其中2个(或更多)where子句的many是真的 例如: SELECT * FROM A WHERE CONVERT(AES_DECRYPT(name,'".$this->key."'),CHAR) LIKE '%".$this->escape($name)."%'" OR CONVERT(AES_DECRYPT(name2,'".$this->key."'),CHAR) = '".$this->escape($name2)."'" O
SELECT *
FROM A
WHERE CONVERT(AES_DECRYPT(name,'".$this->key."'),CHAR) LIKE '%".$this->escape($name)."%'"
OR CONVERT(AES_DECRYPT(name2,'".$this->key."'),CHAR) = '".$this->escape($name2)."'"
OR CONVERT(AES_DECRYPT(name3,'".$this->key."'),CHAR) = '".$this->escape($name3)."'"
OR CONVERT(AES_DECRYPT(name4,'".$this->key."'),CHAR) = '".$this->escape($name4)."'"
.....
有没有一种简单的方法可以只获得2个(或更多)匹配的结果,而不创建一个巨大的SQL语句(每一列都有另一列-(名称和名称2)或(名称和名称3)或(名称和名称4)或…)在MySQL中,您可以利用这样一个事实,即它在数字上下文中将布尔表达式视为1或0。因此,要检查两个或多个条件是否为真,可以编写
WHERE (condition 1) + (condition 2) + ... + (condition n) >= 2
请注意,每个条件周围的括号都是必需的,以防止任何运算符优先级问题。在MySQL中,您可以利用这样一个事实,即它在数值上下文中将布尔表达式视为1或0。因此,要检查两个或多个条件是否为真,可以编写
WHERE (condition 1) + (condition 2) + ... + (condition n) >= 2
请注意,每个条件周围的括号都是必需的,以防止出现任何运算符优先级问题。是否将恰好是4个类似条件或更多?不同的是,我在运行时生成SQL(类似于和“=”),但Nick完美地解决了问题。是否将恰好是4个类似条件或更多?不同的是,我在运行时生成SQL(如和“=”),但Nick完美地解决了这个问题。