MySQL:如果给定字段为空,则选择备用字段

Kyo*_*bul 14 mysql

我想知道是否可以在同一个表上运行mysql命令,如果第一个给定字段为空,则可以选择备用字段.

示例:我有一个名为"posts"的表,其中包含"intro"和"content".在同一语句中,我想选择"内容",如果"intro"为空,但在结果数组中没有.

提前致谢

Tru*_*oft 18

你可以使用IF功能:

SELECT IF(LENGTH(intro)>0, intro, content) 
FROM posts
Run Code Online (Sandbox Code Playgroud)

或者你可以测试NULL你是否意味着空NULL

  • +1:“CASE”将是一个可行的替代方案,但所有其他数据库(Oracle、Postgres 但不支持 SQL Server - 必须使用“LEN”)不支持“LENGTH”关键字,这使得查询可移植性几乎没有意义。 (2认同)

Joe*_*oel 15

Coalesce是您正在寻找的.

SELECT COALESCE(intro, content) AS column1
FROM table
Run Code Online (Sandbox Code Playgroud)

假设intro为null而不是零长度字符串.