MySQL: <> 1 lucrări, dar = 0 nu

Când am trimis o interogare ca

SELECT id FROM private_messages WHERE to_id=1 AND opened=0

Nu întoarce nimic

SELECT id FROM private_messages WHERE to_id=1 AND opened<>1

Returnează toate rezultatele în cazul în care a fost deschisă = 0. Codul open este enum cu valorile "1" și "0" (implicit). Întrebarea este, de ce prima interogare nu întoarce nimic?

0
ce zici de aceasta: SELECT id FROM private_messages Unde to_id = 1 ȘI deschis = '0'?
adăugat autor Sebas, sursa

2 răspunsuri

Deoarece opened este un enum, ar trebui să scrieți:

SELECT id FROM private_messages WHERE to_id=1 AND opened='0'

Enums sunt într-adevăr doar un set de șiruri posibile. Din documentația :

Un ENUM este un obiect șir cu o valoare aleasă dintr-o listă de   valorile permise care sunt enumerate în mod explicit în coloană   specificați la timpul de creare a tabelului.

0
adăugat
@PaulBellora Poți să creezi o cameră de chat și să mă inviți. (Reprezentatul meu nu este suficient de bun pentru a crea) Mai am încă o întrebare.
adăugat autor heron, sursa
@biziclop - Mulțumesc, tocmai am adăugat asta.
adăugat autor Paul Bellora, sursa
@epic_syntax Faceți o întrebare nouă.
adăugat autor JJJ, sursa
Secțiunea privind Manipularea literelor enumerare este deosebit de relevantă.
adăugat autor eggyal, sursa
adăugat autor biziclop, sursa

În câmpurile ENUM, șirurile pe care le specificați ca valori de intrare sunt codate automat ca numere. În interogările și ieșirile lizibile, numerele sunt traduse înapoi în corzile corespunzătoare din rezultatele interogării.

Deci, trebuie să utilizați '0' în loc de 0 .

Când utilizați interogarea în acest fel SELECT id FROM private_messages WHERE to_id = 1 AND open = '0' , cereți MySQL să returneze toate valorile unde to_id = 1 code> open are valoarea indexului 0 și nu valoarea șirului.

0
adăugat
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT

MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.