sql >> Databáze >  >> RDS >> Mysql

Můžete rozdělit/rozložit pole v dotazu MySQL?

Až dosud jsem chtěl tyto seznamy oddělené čárkami uchovávat ve své databázi SQL – dobře si uvědomoval všechna varování!

Stále jsem si myslel, že mají výhody oproti vyhledávacím tabulkám (které poskytují cestu k normalizované databázi). Po několika dnech odmítání jsem uviděl světlo :

  • Použití vyhledávacích tabulek NEZPŮSOBÍ více kódu než ty ošklivé operace s řetězci při použití hodnot oddělených čárkami v jednom poli.
  • Vyhledávací tabulka umožňuje nativní formáty čísel, a NENÍ tedy větší než pole csv. Je však MENŠÍ.
  • Zapojené operace s řetězci jsou v kódu vyšší úrovně jazyka (SQL a PHP) tenké, ale drahé ve srovnání s použitím polí celých čísel.
  • Databáze nejsou určeny k tomu, aby byly čitelné pro člověka, a je většinou hloupé snažit se držet struktur kvůli jejich čitelnosti/přímé úpravě, jako jsem to udělal já.

Stručně řečeno, existuje důvod, proč v MySQL není žádná nativní funkce SPLIT().



  1. Analyzujte název souboru a cestu z úplné cesty

  2. Zkoumání dopadu na výkon adhoc zátěže

  3. Hledání textu v rámci Oracle Stored Procedures

  4. Smazat duplicitní řádky v MySQL (ignoruje primární klíč)