sql >> Database >  >> RDS >> Mysql

Kun je een veld in een MySQL-query splitsen/exploderen?

Tot nu toe wilde ik die door komma's gescheiden lijsten in mijn SQL-database bewaren - goed op de hoogte van alle waarschuwingen!

Ik bleef maar denken dat ze voordelen hebben ten opzichte van opzoektabellen (die een manier bieden om een ​​genormaliseerde database te maken). Na een paar dagen weigeren, Ik heb het licht gezien :

  • Het gebruik van opzoektabellen veroorzaakt NIET meer code dan die lelijke tekenreeksbewerkingen bij het gebruik van door komma's gescheiden waarden in één veld.
  • De opzoektabel staat native getalnotaties toe en is dus NIET groter dan die csv-velden. Het is echter KLEINER.
  • De betrokken stringbewerkingen zijn klein in taalcode op hoog niveau (SQL en PHP), maar duur in vergelijking met het gebruik van arrays van gehele getallen.
  • Databases zijn niet bedoeld om door mensen leesbaar te zijn, en het is meestal dom om te proberen vast te houden aan structuren vanwege hun leesbaarheid / directe bewerkbaarheid, zoals ik deed.

Kortom, er is een reden waarom er geen native SPLIT()-functie in MySQL is.



  1. Hoe de 'sp_server_info' opgeslagen procedure in SQL Server te gebruiken?

  2. Oplossingen voor INSERT OF UPDATE op SQL Server

  3. SQLite-opdrachten

  4. 3 manieren om alle triggers voor een bepaalde tabel in PostgreSQL op te sommen