Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Co mogę zrobić, aby ten kod SQL zwracał wyniki w określonych sytuacjach?

Musisz zmienić niektóre ORAZ na OR, a następnie umieścić OR w nawiasach.

W tej chwili potrzebujesz jednego z $vehicle MATCHów, a także oba $kluczowych dopasowań. Zamiast tego myślę, że chcesz wymagać jednego z $vehicle lub $dopasowania słów kluczowych.

Myślę też, że możesz połączyć dopasowania $keyword w jedno wywołanie MATCH, prawda? I myślę, że sprawdzenie LIKE względem T.truck_number jest zbędne, biorąc pod uwagę DOPASOWANIE, które zawiera tę kolumnę. W takim przypadku możesz napisać tę sekcję SQL jako:

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

I dołączam obowiązkowy komentarz dotyczący ochrony przed wstrzyknięciem SQL poprzez unikanie dynamicznego SQL, które tworzysz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nieobsługiwane skanowanie, przechowujące driver.Value type []uint8 w typie *time.Time

  2. kodowanie Pythona mysql :(

  3. Zduplikuj całą bazę danych MySQL

  4. Wyniki konkursu rankingowego obrazów z oceną 5 gwiazdek

  5. Przyspieszenie (luzem) wstawiaj do MySQL za pomocą Pythona