2010-11-20 34 views
0

permet de dire que j'ai ces lignes DBPHP MYSQL Comparer les lignes lors de la définition instruction WHERE

id | storage | used | status 
1 - 100 - 0 - 1 
2 - 1000 - 5000 - 1 

je dois comparer les lignes « stockage » et « utilisé »

Je veux sélectionner des lignes status = 1 et colonne "storage"> Colonne "used".

J'ai essayé où le statut = « 1 » et stockage> utilisé

Il devrait faire rapport id de la ligne n ° 1, mais il ne marche pas.

Répondre

0

Eh bien, WHERE status=1 AND storage > used est correct. Si vous l'avez essayé et que vous n'avez pas récupéré la ligne avec id=1, il y a un problème avec vos données.

Les colonnes numériques sont-elles storage et used? Ou sont-ils stockés comme VARCHAR (ou, gasp, TEXT)? Si c'est le cas, vous ne pourrez pas les comparer comme vous le souhaitez et devrez d'abord les convertir ou les convertir en types numériques. Il vaudrait mieux changer le type pour qu'il soit réellement numérique (c'est-à-dire INT ou DECIMAL ou n'importe quel autre type approprié).

+0

son int actuellement, toujours pas de retour correctement :( – jiexi

+0

nvm je sais où j'ai échoué ... j'ai oublié d'aller chercher tableau lol k merci :) – jiexi

0
SELECT * FROM `table` WHERE status = '1' AND storage > used 

devrait vous donner la bonne solution, comme VoteyDisciple mentionné, assurez-vous status et used sont tous deux de type numérique.

0

vous pouvez utiliser SELECT * FROM table WHERE status = '1' AND storage > used mais le type de données du stockage et utilisé doit être NUMERIC pas VARCHAR. Si vous n'obtenez toujours pas les données correctes, votre structure de stockage de données devrait rencontrer un problème.

Merci!