sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

mysql-fråga visar fel resultat

Du blandar typer. ID är ett heltal (eller tal). Du jämför det med en sträng. Så MySQL måste bestämma vilken typ som ska användas för jämförelsen. Vilka typer används? Nåväl, ett snöre? Nej. Ett nummer. Strängen konverteras till ett tal med hjälp av de inledande siffrorna. Så det blir 101 och tändstickor.

Du bör egentligen bara jämföra siffror med siffror och strängar med strängar. Du kan försöka skriva koden som:

SELECT * FROM tableName WHERE ID = 101foo2

Däremot skulle du få ett fel. En annan möjlighet är att tvinga omvandlingen till en sträng:

SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'



  1. Kan du anpassa ett mysql_error duplicate felmeddelande?

  2. Hur infogar man en dynamisk array i databasen i php?

  3. Importera CSV-fil till MySQL med phpMyAdmin

  4. Enkla MySQL-frågor tar lång tid att beräkna