sql >> Database teknologi >  >> RDS >> Mysql

mysql søg efter en catid i et tekstfelt

MySQL kan hjælpe dig med at omgå disse enorme databasedesignfejl med funktionen FIND_IN_SET . Prøv dette:

SELECT * FROM articlepix 
WHERE published = 1 AND FIND_IN_SET('86', catid) > 0
ORDER BY RAND() LIMIT 1

Hvilket selvfølgelig kan forenkles til:

WHERE published = 1 AND FIND_IN_SET('86', catid)

Da funktionen kun returnerer 0 når der ikke er noget match, men det kan være sværere at forstå, hvad det gør :)




  1. java.sql.SQLException:Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA)

  2. Hvorfor MySQL giver fejl Ikke tilladt at returnere et resultatsæt fra en funktion?

  3. Databasen kan ikke åbnes, fordi den er version 782. Denne server understøtter version 706 og tidligere. En nedgraderingssti understøttes ikke

  4. MYSQL match mod forespørgsel to tabeller