sql >> Database >  >> RDS >> Mysql

Wat kan ik doen om deze SQL-resultaten in bepaalde situaties te laten retourneren?

U moet enkele van uw AND's wijzigen in OR's en vervolgens de OR's tussen haakjes plaatsen.

Op dit moment heb je een van de $vehicle MATCH's nodig en ook beide van de $keyword-overeenkomsten. In plaats daarvan denk ik dat je een van de $vehicle of $zoekwoord komt overeen.

Ik denk ook dat je de $keyword-overeenkomsten kunt combineren in een enkele MATCH-aanroep, nietwaar? En ik denk dat de LIKE-controle tegen T.truck_number overbodig is gezien de MATCH die die kolom bevat. In dat geval zou je dat gedeelte van de SQL kunnen schrijven als:

 AND (MATCH( T.truck_number, T.make, T.model, T.engine, T.vin_number,
      T.transmission_number, T.comments) AGAINST( '$vehicle' )
     OR MATCH( P.part_num, P.part_desc, P.part_ref,M.comments, M.work_done) 
     AGAINST( '$keywords' ))

En ik voeg de verplichte opmerking toe over jezelf beschermen tegen SQL-injectie door te ontsnappen aan de dynamische SQL die je maakt.




  1. MySQL dump .sql-script en importeer naar een apache-derby

  2. SQL Counter en returner, verdubbelt het resultaat

  3. Cursor in procedure die meer waarden retourneert dan query

  4. Hoe te verwijderen uit select in MySQL?