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

Wyszukiwanie połączonego pola

SELECT *
FROM 
    (
    SELECT `users`.`firstname`, `users`.`lastname`, `users`.`id`, 
    CONCAT(firstname," " ,lastname) AS `firstnamelastname`, 
    CONCAT(lastname," " ,firstname) AS `lastnamefirstname` 
    FROM `users` 
    WHERE (id != '15')
)
WHERE (firstnamelastname like 'a%' ) 
OR (lastnamefirstname like 'a%')

Twoje aliasy nie są dostępne dla MySQL podczas pierwszej oceny WHERE klauzula.

Ale Twoje zapytanie w rzeczywistości jest takie samo:

SELECT `users`.`firstname`, `users`.`lastname`, `users`.`id`, 
CONCAT(firstname," " ,lastname) AS `firstnamelastname`, 
CONCAT(lastname," " ,firstname) AS `lastnamefirstname` 
FROM `users` 
WHERE (id != '15')
AND (firstname LIKE 'a%' OR lastname LIKE 'a%')

Więc twój concat w klauzuli where jest niepotrzebny.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dziwny błąd integralności w MySQL:#1452

  2. Kod PHP eval() pomiędzy <?php ?> z bazy danych

  3. UPDATE składnia z ORDER BY, LIMIT i wieloma tabelami

  4. VARCHAR vs TEXT w MySQL

  5. Jak przechowywać tablicę w tabeli?