Is there any way to get the if statement to evaluate a query? SELECT if(5>0,'EQ_Type','*') FROM EQUIPMENT; Resulting in: +-----------------------+ | IF(5>0,'EQ_Type','*') | +-----------------------+ | EQ_Type | | EQ_Type | | EQ_Type | | EQ_Type | | EQ_Type | | EQ_Type | | EQ_Type | | EQ_Type | | EQ_Type | +-----------------------+ 9 rows in set (0.00 sec) I would like the above statement to be equivalent to the following: SELECT 'EQ_Type' FROM EQUIPMENT; And produce: +--------------+ | EQ_Type | +--------------+ | ENGINE | | ENGINE | | ENGINE | | TRAILER | | TRAILER | | TRAILER | | WATER TENDER | | WATER TENDER | | WATER TENDER | +--------------+ Thanks for any help
1
A
Répondre
3
Supprimez simplement les guillemets simples.
SELECT if(5>0,EQ_Type,'*') FROM EQUIPMENT;
+0
Merci monsieur. Je suis un novice alors j'ai pensé que ce serait quelque chose d'évident. –
1
Je recommande d'utiliser la notation ANSI - CASE statements dans ce cas - plutôt que MySQL syntaxe spécifique:
SELECT CASE WHEN 5 > 0 THEN t.eq_type ELSE '*' END
FROM EQUIPMENT t
Raison d'être, si vous avez modifié les bases de données - cette déclaration ne serait pas nécessaire de modifier travailler sur Oracle, Postgres, SQL Server, etc.
Wont 5> 0 aboutit toujours à 'true', d'où EQ_Type? Je ne connais pas très bien MySql donc je pourrais mal lire ça. Était-ce juste un exemple artificiel? – GrayWizardx