2009-11-10 14 views
1

Je travaille avec une architecture existante qui remplit des champs d'un formulaire avec des éléments de la base de données. Le formulaire est entièrement basé sur une base de données et est fait en PHP et MySQL. Le problème est que la table de base de données qui contient les éléments de formulaire a un champ pour la requête qui retournera un jeu de résultats qui sera utilisé pour remplir l'élément de formulaire déroulant select. Cela fonctionne très bien pour des domaines tels que les États, les pays et d'autres domaines spécifiques à notre organisation.Requête SQL return Vrai/Faux

J'implémente un nouveau champ et je veux mettre une requête dans laquelle retourne un simple resultset {True, False} mais je ne veux pas créer une nouvelle table de base de données qui a simplement ces deux options, mais doivent Gardez-le dans le cadre, j'ai donc besoin d'une requête SQL pour retourner le resultset qui sera utilisé pour remplir l'élément de formulaire.

Existe-t-il une sorte de requête SQL qui retournera simplement le jeu de résultats {Vrai, Faux} afin que je puisse éviter de créer une table uniquement pour héberger ces deux options?

Répondre

2

SELECT 'True' UNION SELECT 'False';

+0

C'est exactement ce que je cherchais. Je n'ai pas pensé à le faire comme ça, merci! –

+1

Pourquoi pas UNION ALL? Pourquoi pas de nom "colonne"? – gbn

+0

@hrnt: UNION supprime les dupes, UNION ALL conserve. Pas de nom de colonne est une mauvaise pratique, mais bon ... – gbn

2
SELECT 'true' AS [state] UNION ALL SELECT 'false' 
2

Vous voulez dire quelque chose comme ça ?:

select 'True' as value 
union all 
select 'False' as value 

Je suppose qu'il ya quelque chose plus complexe que vous cherchez?

0

Vous pouvez sérialiser un tableau pour le stocker dans la base de données sous la forme d'une chaîne et le désérialiser à la sortie.

$array = array(true, false); 

Entrant dans le db:

serialize($array); 

En sortant de la db:

unserialize(YOUR_DB_RESULT_HERE); 
1

Je ne sais pas si cette requête travaillerait en MySql, mais dans SQL Server cela fonctionne.

Vous pouvez faire cette requête:

SELECT 'True' 
UNION 
SELECT 'False' 

Vous ne devez pas spécifier une table. Vous pouvez le faire pour n'importe quelle valeur dont vous avez besoin, pour n'importe quel type de données.