2016-07-26 16 views
0

Ich fusionierte zwei Spalte mit AS, jetzt möchte ich Daten in ihnen mit LIKE suchen. Wie kann ich das machen? Hier ist was ich bisher versucht habe.Wie man mit LIKE in Spalten fusioniert mit AS

Php:

$sql = "SELECT CONCAT (name , ' ' , surname) AS full FROM person "; 
$query = mysqli_query($con,$sql); 
if($query){ 
    while($row=mysqli_fetch_assoc($query)){ 
     echo "<p>$row[full]</p>"; 
    } 
}else{ 
    echo mysqli_error($con); 
} 

Antwort

2

Ich denke, du so versuchen könnte - mit der having Klausel statt, wo

select concat(field1, field2) as 'alias' 
from `table` 
having `alias` like '%word%' 

oder in Ihrem Fall:

SELECT CONCAT (`name` , ' ' , `surname`) AS 'full' FROM `person` 
having `full` like '%word%'; 
+0

Ja. genau wie ich will. Ich habe mich ein wenig verändert: concat (field1, '', field2) – vulkan

0

Verwenden Unterabfrage.

Subquery "SELECT CONCAT (name , ' ' , surname) AS full FROM person "

komplette Abfrage:

SELECT * from (SELECT CONCAT (name , ' ' , surname) AS full FROM person) where 
full like '%a%'; 

Hoffe, es hilft.

+0

I erhalten einen Fehler = "Jede abgeleitete Tabelle muss ihren eigenen Alias ​​haben" – vulkan

+0

Probieren Sie diese SELECT b. * aus (SELECT CONCAT (name , '', Nachname) AS voll von Person) b wo b.full wie '% a%'; – Pirate

0

können Sie auch versuchen,

SELECT * 
FROM pages 
WHERE CONCAT_WS('', column1, column2, column3) LIKE '%keyword%' 
+0

PHP 'während', wie ich schrieb? – vulkan