我想做一个SQL查询l 但是如何在SQL SELECT语句中执行IF ... THEN,如:“ 从table1,table2中选择名称,其中if(名称就像一个名字,如a),其他名称如b“
答案 0 :(得分:2)
您可以使用OR
运算符,该运算符连接两个布尔子句:
WHERE name LIKE ...
OR name LIKE ...
请注意,OR
的优先级低于AND
,因此如果您想将其与其他限制相结合,则需要使用括号;例如:
WHERE ( name LIKE '%a%' OR name LIKE '%b%' )
AND id < 1000
答案 1 :(得分:1)
SQL不是一种编程语言,它没有if,then,else等。如果所需的条件可以在AND和OR等集合操作中表达,那么你可以这样做。
否则您需要编写存储过程,存储函数或存储例程。请参阅http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html,它将允许您编写过程代码。设定的操作通常要快得多。
答案 2 :(得分:1)
MySQL支持IF
语句和CASE
语句。尝试这样的假设a和b是你的一个表中的列,name是另一个表中的列:
select name
from table1,table2
where name like
case
when name like a
then a
else b
end
还有一些示例小提琴:http://sqlfiddle.com/#!2/c6ce6/1
您可能希望在LIKE查询中使用'%' - 如果是,则相应地使用CONCAT。如果需要,可以将相同的逻辑用于字符串值。
请发布您的表格结构,示例数据和所需的输出,以便我们完全理解您的问题并提供最佳答案。
答案 3 :(得分:0)
曾经尝试过mysql存储过程http://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspx吗?
您可能想要查看一下:using "if" and "else" Stored Procedures MySQL
希望这有帮助! :)