mysql if 语句失败,不知道如何修复

标签 mysql if-statement

目前我有这个声明

IF(0.5 < SELECT (FLOOR(10*RAND()*pResourcium) AS TestVar FROM siegeverse.rooms rm) AS T))
THEN SELECT 'TEST'

知道为什么失败吗?如果所选元素大于 0.5,则尝试使其输出每行测试

谢谢!

最佳答案

此类标量比较上下文中的 SELECT 语句应仅返回一行。在您的情况下,它可能会返回多行,因此失败。以下重写的查询接近您感兴趣的内容:

IF EXISTS (SELECT * 
FROM
    (SELECT
         CASE 
             WHEN (FLOOR(10*RAND()*pResourcium) >= 0.5 THEN 'TEST'
             ELSE NULL
         END AS TestVar
     FROM 
         siegeverse.rooms rm
    ) AS A
WHERE A.TestVar IS NOT NULL)
THEN
     <run the stored procedure>

关于mysql if 语句失败,不知道如何修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150757/

相关文章:

java - 不从 MySQL 获取所有数据 (java)

c# - if条件内的sql select语句

MYSQL:IF语句查找n行中的空列

SQL IF/EXISTS 语句

mysql - 如何删除未连接的 MySQL 用户?

php - 更新 php 脚本中的重复键

Excel 条件格式 - 'IF' 公式语法

if-statement - Racket 中的 If 语句

PHP 日期获取微秒精度以匹配 MySQL 列数据类型

MySQL 无法为表添加外键约束