1

MySQL は次のようなことを可能にしますか?

SELECT username, age, age>13 AS ageGT FROM users.

そして、次のようなものを取得します。

+--------+---+-----+
|username|age|ageGT|
+--------+---+-----+
|fred    |14 |true |
|bob     |12 |false|
+--------+---+-----+

?

これは大きな助けになるでしょう、ありがとう!

明確化: 句を探しているわけではありません。WHERE両方のケースを選択したいのですが、句が true と false のどちらを評価するかを示す列が必要です。

4

2 に答える 2

6

あなたができるCASE WHEN age > 13 THEN 'true' ELSE 'false' END AS ageGT

SELECT 
    username, 
    age, 
    CASE WHEN age > 13 THEN 'true' ELSE 'false' END AS ageGT
FROM users

またはもっと簡単に:

IF(age>13, 'true', 'false') AS ageGT

CASE 式IF() 関数の詳細を参照してください。

重要な違いは、CASE式の構文がすべての主要な DBMS でサポートされているのに対し、IF()MySQL 固有のものであるということです。

于 2012-07-11T04:57:23.527 に答える
2
SELECT username, 
age, 
case when age>13 then 'true' else 'false' end AS ageGT 
FROM users
于 2012-07-11T04:59:10.887 に答える