使用IF

时间:2016-02-18 07:45:28

标签: mysql sql

我想用if条件为我的查询添加一些连接语句。我试着使用CASE功能。但它只返回一个表达式。我想要查询的是;

SELECT * FROM table1 JOIN table2 ON (table1.id = table2.id)
IF(table1.col1 like '%a%')
 {
   JOIN table3 ON .....
   LEFT JOIN table4 ON ....
   .....
 }
ELSE
 {
   JOIN table5 ON ....
   LEFT JOIN table6 ....
 }
WHERE 
 ......

有没有办法创建这样的查询?

1 个答案:

答案 0 :(得分:3)

答案是:是的,您可以但不能使用if ...您需要将IF条件添加到连接的ON子句中,这样当条件为真时,此列将具有值当条件不成立时,它们将为空。

SELECT * FROM table1
JOIN table2 ON (table1.id = table2.id)
JOIN table3 ON(table1.id = table3.id AND table1.col like '%a%')
LEFT JOIN table4 ON(table1.id = table4.id AND table1.col like '%a%')
JOIN table5 ON(table1.id = table5.id AND table1.col not like '%a%')
LEFT JOIN table6 ON(table1.id = table6.id AND table1.col not like '%a%')

你不能划分你的桌子,把几行连接到一张桌子,把另一排连接到另一张桌子。所以这是我能想到的最佳方式。