[英]MySQL condition depending on column value
因此,我的表中或多或少具有以下列結構:
Name Age Operator
---- --- --------
Jhon 35 >
Michael 30 =
Jess 27 <
基於此,我想進行這樣的查詢
SELECT * FROM mytable WHERE Name = 'John' AND Age > 40
顯然,這將不會返回任何結果,這很好,但是我的問題是我想使用Jhon的“ Operator”值(在本例中為>)來創建該條件。
可能嗎?
謝謝!
您還可以使用MySQL的PREPARE
和EXECUTE
語句來創建動態SQL。
SET @name = 'Jhon';
SET @operator = NULL;
SET @age = 10;
SELECT
Operator
INTO
@operator
FROM
Table1
WHERE
Name = @name;
SET @SQL = CONCAT(
"SELECT"
, " * "
, " FROM "
, " Table1 "
, " WHERE "
, " name = '", @name, "' AND age ", @operator, ' ' , @age
);
SELECT @SQL; # not needed but you can see the generated SQL code which will be executed
PREPARE s FROM @SQL;
EXECUTE s;
您可以像這樣簡單地做到這一點:
SELECT
*
FROM Table1
WHERE Name = 'Jhon'AND CASE
WHEN Operator = '>' THEN Age > 10
WHEN Operator = '<' THEN Age < 10
WHEN Operator = '=' THEN Age = 10
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.