Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] kilka pól i LIKE
Forum PHP.pl > Forum > Bazy danych
Cod
Mój ojciec zaczął ostatnio używać do programowania w Visual Basicu bazy danych SQL. Poprosił mnie, żebym zapytał na forum o taką rzecz:

- w tabeli znajduje się dużo pól, dajmy na to 20, mają one różne nazwy, np.: aaa, bbb, ccc, itd.,
- tata chce zrobić wyszukiwanie w swojej bazie, korzystające z LIKE.

Czy jest jakieś zapytanie, gdzie po przecinku wypisywałoby się pola, które chce się przeszukać, a działałoby ono, jak LIKE?

Takie coś: "aaa LIKE 'xxx' OR bbb LIKE 'xxx' OR ccc LIKE 'xxx'" zupełnie mu nie pasuje. Chciałby to jakoś wszystko uporządkować. Proszę pomóżcie! Bo stary nie daje mi spokoju tongue.gif.
kicaj
http://www.mysql.com/doc/en/Fulltext_Search.html - moze pomoze smile.gif
polaczek
Jeżeli dobrze cie zrozumiałem to chcesz aby wyszukiwał w paru polach tego samego??
spubuj tak
Kod
SELECT * FROM tabela WHERE (aaa LIKE "$ble" || bbb LIKE "$ble")

jeżeli dobrze cie zrozumiałem to tak to wygląda
Wankster
W php byś musiał użyć funkcji explode...
[php:1:cb968f3898]<?php

$gdzie_szukac = 'aaa, bbb, ccc, ddd, eee';
$co_szukac = 'jakaś fraza';

$where = explode( ', ', $gdzie_szukac );

$where_clouse = '';
$i = 0;

foreach( $where AS $field )
{
$spacer = $i == ( count( $where ) - 1 ) ? '' : ' || ';
$where_clouse .= $field . ' LIKE '%' . $co_szukac . '%'' . $spacer;

$i++;
}

$sql = 'SELECT *
FROM nazwa_tabeli
WHERE ( ' . $where_clouse . ' )
ORDER BY aaa ASC
LIMIT 10';

$r = mysql_query( $sql );

while( $row = mysql_fetch_array( $r ) )
{
echo 'aaa : ' . $row['aaa'] . '<br />';
}
?>[/php:1:cb968f3898]
Wankster
a przeczytałeś jakie on zadał pytanie?
Cytat
Czy jest jakieś zapytanie, gdzie po przecinku wypisywałoby się pola, które chce się przeszukać, a działałoby ono, jak LIKE?

no to są wpisywane w zmiennej (gdzie_szukac) po przecinku (', ') nazwy pól i te przeszukuje winksmiley.jpg

Jeżeli o to mu w tym chodzi...
Cod
Ten skrypcik php jest bardzo fajny i na pewno by zadziałał, ale ojciec używa Visual Basica! Polaczek: To też na pewno by zadziałało, ale nam jest potrzebne zapytanie, w którym pola wypisujesz po przecinku. Coś podobnego jest chyba w IN: "SELECT "xxx" IN (aaa,bbb,ccc,nnn)", ale on musi mieć takie coś z LIKE. Mimo wszystko dziękuję za poświęcony mi czas smile.gif. Ale czekam na dalsze odpowiedzi biggrin.gif.

Cytat

O! Dzięki za tego linka! Nie zauważyłem go na początku. Zobaczymy, czy działa, to co tam napisali smile.gif.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.