Wyszukiwanie wzorca (ze zmiennej) w tekście - MySQL, C++

0

Witam
Jak chcę wyszukać w bazie np. Imię zaczynające się na 'Piot' to wpisuję

 mysql_query(conn,"SELECT* FROM osoby WHERE imie LIKE 'Piot%';"); 

i wyszukuje mi prawidłowo.
Natomiast nie wiem jak otrzymać ten sam wynik używając zmiennej. Próbowałem w ten sposób:

 
    char zmienna[128]="Piot";
    char query[1024]; 
    sprintf(query,"SELECT * FROM osoby WHERE imie LIKE %\"%s\"",zmienna);  
     mysql_query(conn,query);

Niestety tak nie działa.

0

No tak na logikę:

sprintf(query,"SELECT * FROM osoby WHERE imie LIKE \"%s%\"",zmienna);  

Ewentualnie:

sprintf(query,"SELECT * FROM osoby WHERE imie LIKE \"%s\%\"",zmienna);  
0

Ewentualnie (jeśli piszesz w C++) zbuduj zapytanie sql przy użyciu std::ostringstream.

0
Patryk27 napisał(a):

No tak na logikę:

sprintf(query,"SELECT * FROM osoby WHERE imie LIKE \"%s%\"",zmienna);  

Ewentualnie:

sprintf(query,"SELECT * FROM osoby WHERE imie LIKE \"%s\%\"",zmienna);  

Tak na logikę to próbowałem na wiele sposobów na te dwa też nie działa.

1
    char zmienna[128]="Piot";
    char query[1024]; 
    sprintf(query,"SELECT * FROM osoby WHERE imie LIKE '%s%%';",zmienna);  
     mysql_query(conn,query);
1

Chyba nie musi być dwa razy % http://ideone.com/0mQFZU

0
MarekR22 napisał(a):
    char zmienna[128]="Piot";
    char query[1024]; 
    sprintf(query,"SELECT * FROM osoby WHERE imie LIKE '%s%%';",zmienna);  
     mysql_query(conn,query);

Dokładnie w ten sposób działa mi bez problemu, dziękuję bardzo za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1