mysql - 将 IF 放入选择查询中

标签 mysql sql if-statement

这段代码如何转换为正确的查询?可能吗?

首先我想检查id IN (55,1454,232,444,10999,223)是否存在行。其次,如果不存在,则随机获取行。

 SELECT
      id
      name
      title
 FROM
      table t
 WHERE
      id IN (55,1454,232,444,10999,223)

 IF count_row(t) == 0 // <-- if for WHERE no result row
      SELECT
           id
           name
           title
      FROM
           table
      ORDER BY RAND()
      LIMIT 20

最佳答案

尝试类似:

   SELECT id,
          name,
          title
    FROM
          table t
    WHERE
          id IN (55,1454,232,444,10999,223)

    UNION

    SELECT *
    FROM
        table t
    WHERE NOT EXISTS (SELECT id,
                             name,
                             title
                      FROM
                             table t
                      WHERE
                             id IN (55,1454,232,444,10999,223));

关于mysql - 将 IF 放入选择查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595496/

相关文章:

php - 如何从mysql加载子类别到joomla

c - 我该如何正确

python - 嵌套循环迭代单个文件

mysql - 使用 PHP、Java 从 PDF 或 Word 中提取数据

python - Python中线性时间动态更新MySQL表

sql - PostgreSQL 导入问题 - 除了一个导入之外的所有表

mysql - 如何验证特定表字段的内容是否单义?

sql - Teradata 中的 DECIMAL 类型

java - calc() 类型方法中的 else if 语句返回不正确的值

php - 在 mySQL 表中搜索字符串并返回其所在字段的名称