sql >> Database >  >> RDS >> Mysql

Geavanceerde MySQL-deelname. Query versnellen

Er is een manier, maar het wordt te duur naarmate u meer velden toevoegt. Hetzelfde gebeurt met veel CMS die ervoor kiezen om aanvullende gebruikersgegevens in die vorm op te slaan.

U kunt een werkende zoek-SQL krijgen door dit te gebruiken:

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%'

Deze methode wordt erg groot en duur voor de MySQL-server naarmate je meer tabellen toevoegt. Daarom zou ik aanraden om niet meer dan 10-15 lidmaatschappen op die manier te gebruiken en nogmaals, ik zou het profiel maken om er zeker van te zijn.



  1. PHP MYSQL haalt een TEKST op met nieuwe regels

  2. 60 miljoen inzendingen, selecteer inzendingen uit een bepaalde maand. Hoe database optimaliseren?

  3. MySQL:Hoe kan ik de tijdstempel van de laatste invoeging in de database krijgen?

  4. com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:dubbele invoer '' voor sleutel 'PRIMARY'