sql >> Database >  >> RDS >> Mysql

mysql select-query binnen een geserialiseerde array

Zoals GWW in de opmerkingen zegt:als je dingen op deze manier wilt opvragen, zou je echt moeten overwegen om deze gegevens op te slaan als iets anders dan een big-ole-string (wat je geserialiseerde array is).

Als dat niet mogelijk is (of als je gewoon lui bent), kun je het feit gebruiken dat de geserialiseerde array slechts een big-ole-string is, en een LIKE-clausule bedenken om overeenkomende records te vinden. De manier waarop PHP gegevens serialiseert, is vrij eenvoudig te achterhalen (hint:die cijfers geven de lengte van dingen aan).

Als uw geserialiseerde array redelijk complex is, zal deze snel kapot gaan. Maar als het een platte array is, zou je het moeten kunnen.

Natuurlijk gebruik je LIKE '%...%', dus je krijgt geen hulp van indicaties en de prestaties zullen erg slecht zijn.

Dat is de reden waarom mensen voorstellen dat je die gegevens op een genormaliseerde manier opslaat, als je er 'binnenin' naar moet zoeken.



  1. Hoe de positie van een lijstitem in MySQL te retourneren

  2. Hoe opmerkingen van een kolom te tonen met desc-bewerking

  3. Tekenreeksaaneenschakelingsoperator in Oracle, Postgres en SQL Server

  4. Een MySQL-tabel, indices en gegevens dupliceren