Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

SELECT
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
pehashpist



Data înscrierii: 08/Feb/2007
Mesaje: 160

Trimis: Sâm Iul 12, 2008 2:49 pm    Titlul subiectului: SELECT  

sa zicem ca am o coloana `nume` si o variabila $nume='Popescu Vasile, Badea Gheorghe, Vanghelie Marean Care Este, Nastase Adrian';
Vreau sa selectez din coloana nume toate intrarile care contin unul din textele separate de virgula in variabila $nume
De ex daca am in `nume` valorile:
Citat: Emil Boc
Popescu Ion
Badea Gheorghe
Popescu Vasile Ghita
Care Este

sa imi returneze doar Badea Gheorghe si Popescu Vasile Ghita, nu si Popescu Ion sau Care Este chiar daca se afla in variabila $nume
pot face asta direct din mysql? sau trebuie sa folosesc explode iar in interogare LIKE '%$elementul_vectorului%' ?
Sus  
pehashpist



Data înscrierii: 08/Feb/2007
Mesaje: 160

Trimis: Sâm Iul 12, 2008 3:45 pm    Titlul subiectului:  

poate ca s-ar rezolva daca in loc de `name` LIKE '%$name%'
as pune invers adica $name LIKE `name`
e posibil? am vazut ca merge (sintaxa) dar nu si logic

pot sa compar o variabila cu o coloana (in loc de invers) si sa zic ca valoarea variabilei poate incepe sau se poate termina cu valoarea coloanei?
Sus  
dechim



Data înscrierii: 10/Mai/2005
Mesaje: 632
Locație: Drobeta Turnu Severin

Trimis: Sâm Iul 12, 2008 11:35 pm    Titlul subiectului:  

Ceva in genul :
SELECT ...
WHERE `name` IN ('Emil Boc','Popescu Ion','Badea Gheorghe','Popescu Vasile Ghita','Care Este');
Va intoarce inregistrarile care contin in coloana `nume` o valoare din lista.
Sus  
pehashpist



Data înscrierii: 08/Feb/2007
Mesaje: 160

Trimis: Dum Iul 13, 2008 12:38 am    Titlul subiectului:  

am incercat acum si vad ca returneaza doar randurile in care coloana nume este exact una din valorile din lista, as vrea daca se poate sa returneze si cele care incep sau se termina cu una din valorile din lista
Sus  
dechim



Data înscrierii: 10/Mai/2005
Mesaje: 632
Locație: Drobeta Turnu Severin

Trimis: Dum Iul 13, 2008 7:59 pm    Titlul subiectului:  

Trebuie sa obtii :
SELECT ...
WHERE `name` LIKE 'Emil Boc%' OR `name` LIKE '%Emil Boc' OR `name` LIKE 'Popescu Ion%' OR `name` LIKE '%Popescu Ion' ...
Pentru asta variabilei
$nume= 'Emil Boc,Popescu Ion,Badea Gheorghe,Popescu Vasile,Care Este';

ii aplici :

$nume1 = "`name` LIKE '%" . str_replace(",", "' `OR name` LIKE '%",$nume). "' OR `name` LIKE '" . str_replace(",","%' OR `name` LIKE '",$nume)."%';";

si selectul devine :
SELECT ... WHERE $nume1
Sper ca n-am gresit pe undeva si ca ai prins ideea.
Sus  
pehashpist



Data înscrierii: 08/Feb/2007
Mesaje: 160

Trimis: Lun Iul 14, 2008 3:41 pm    Titlul subiectului:  

merge perfect
ms mult
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community