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

Pokročilé připojení k MySQL. Zrychlení dotazu

Existuje způsob, ale čím více polí přidáte, předraží to. Totéž se děje s mnoha CMS, které se rozhodnou ukládat další uživatelská data v této formě.

Funkční vyhledávací SQL můžete získat pomocí tohoto:

SELECT
    users.*,
    firstname.data AS firstname,
    lastname.data AS lastname,
    eyecolor.data AS eyecolor,

FROM
    users
    LEFT JOIN completed_form_fields AS firstname ON firstname.userid = users.id AND firstname.fieldkey = "firstname"
    LEFT JOIN completed_form_fields AS lastname ON lastname.userid = users.id AND lastname.fieldkey = "lastname"
    LEFT JOIN completed_form_fields AS eyecolor ON eyecolor.userid = users.id AND eyecolor.fieldkey = "eyecolor"

WHERE
    firstname.data LIKE '%searchdata%'
    OR lastname.data LIKE '%searchdata%'
    OR eyecolor.data LIKE '%searchdata%'

Čím více tabulek přidáváte, tato metoda je pro server MySQL velmi velká a nákladná. Proto bych doporučoval nechodit více než 10-15 spojení a pak znovu, pro jistotu bych to profiloval.



  1. Jak zabránit někomu v návratu na předchozí stránku?

  2. Jak použít smyčku SQL for k vložení řádků do databáze?

  3. Připojení Oracle k SQL Serveru z Windows

  4. Mohu přidat UNIQUE omezení do tabulky PostgreSQL poté, co je již vytvořena?