sql >> Database >  >> RDS >> Mysql

Methode voor MYSQL-zoekvelden

Dus, als we aannemen dat de kolommen name en colors de enige kolommen zijn waar we doorheen moeten zoeken, zou ik het volgende doen (naïeve oplossing, maar zal prima werken als uw database geen miljoenen rijen heeft en u niet duizenden klanten tegelijk aan het zoeken bent).

Maak eerst een weergave

CREATE VIEW SearchHere AS
SELECT item_id, CONCAT(name, ' ', colors) AS FullDescription
FROM table

Ik weet de naam van de tabel in je screenshot niet, dus ik heb table gebruikt zoals de naam.

Als een gebruiker nu zoekt naar adult red pants je zou een vraag kunnen stellen

SELECT item_id
FROM SearchHere
WHERE FullDescription LIKE '%adult%'
AND FullDescription LIKE '%red%'
AND FullDescription LIKE '%pants%'

Natuurlijk moet u de query on-the-fly genereren, maar dat is geen probleem. Je zou kunnen spelen met AND of OR en het plaatsen van spaties tussen het wildcrad-symbool % en de zoekterm. Waarschijnlijk zou je de weergave ook op een meer verfijnde manier willen doen, bijvoorbeeld meer doen dan alleen CONCAT .



  1. Rollende telling van rijen binnen tijdsinterval

  2. EXECUTE...USING statement in PL/pgSQL werkt niet met recordtype?

  3. Alle databases weergeven met PostgreSQL

  4. SQL-rijuitvoer sorteren in een willekeurige volgorde?