当一列为NULL时,带有条件的WHERE语句

use*_*316 5 mysql sql

让我说我有

ID       |   Column 1 | Column 2
  2      |      NULL  |     "a"
  3      |      "b"   |    NULL
  4      |       "c"  |     "c"
Run Code Online (Sandbox Code Playgroud)

我想写的是:

 SELECT ID FROM table, AnotherTable 
  WHERE (Table.Column1 = AnotherTable.Column IF Table.Column1 IS NOT NULL 
     OR Table.Column2 = AnotherTable.Column IF Table.Column2 IS NOT NULL)
Run Code Online (Sandbox Code Playgroud)

编辑:我也添加了案例IF Table.Column1 IS NOT NULL和Table.Column2 IS NOT NULL,然后选择Table.Column2 = AnotherTable.Column

egg*_*yal 10

你可以使用这个COALESCE()功能:

SELECT ID
FROM   table JOIN AnotherTable
               ON AnotherTable.Column = COALESCE(table.Column1, table.Column2)
Run Code Online (Sandbox Code Playgroud)

  • @ user461316:反转参数的顺序? (2认同)