de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Mario M
Mario M
Question

SQL SELECT WHERE pole zawiera słowa

Potrzebuję selecta, który zwróciłby wyniki jak poniżej:

SELECT * FROM MyTable WHERE Column1 CONTAINS 'word1 word2 word3'

I potrzebuję wszystkich wyników, tzn. obejmuje to ciągi z 'word2 word3 word1' lub 'word1 word3 word2' lub jakąkolwiek inną kombinację tych trzech.

Wszystkie słowa muszą być w wyniku.

480 2013-01-12T06:19:50+00:00 3
Ben Sutton
Ben Sutton
Edytowane pytanie 15. sierpnia 2017 в 6:35
Programowanie
sql
select
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
 mvp
mvp
12. stycznia 2013 в 6:21
2013-01-12T06:21:46+00:00
Więcej
Źródło
Edytuj
#18203249

Raczej powolna, ale działająca metoda pozwalająca na włączenie każdego słowa:

SELECT * FROM mytable
WHERE column1 LIKE '%word1%'
   OR column1 LIKE '%word2%'
   OR column1 LIKE '%word3%'

Jeśli potrzebujesz, aby wszystkie słowa były obecne, użyj tego:

SELECT * FROM mytable
WHERE column1 LIKE '%word1%'
  AND column1 LIKE '%word2%'
  AND column1 LIKE '%word3%'

Jeśli chcesz czegoś szybszego, musisz spojrzeć na wyszukiwanie pełnotekstowe, a to jest bardzo specyficzne dla każdego typu bazy danych.

 mvp
mvp
Edytowana odpowiedź 12. stycznia 2013 в 6:27
729
0
Jon Crowell
Jon Crowell
12. stycznia 2013 в 6:24
2013-01-12T06:24:16+00:00
Więcej
Źródło
Edytuj
#18203250
SELECT * FROM MyTable WHERE 
Column1 LIKE '%word1%'
AND Column1 LIKE '%word2%'
AND Column1 LIKE  '%word3%'

Zmieniono OR na AND w oparciu o edycję pytania.

Jon Crowell
Jon Crowell
Edytowana odpowiedź 12. stycznia 2013 в 6:30
8
0
 vidyadhar
vidyadhar
12. stycznia 2013 в 7:27
2013-01-12T07:27:15+00:00
Więcej
Źródło
Edytuj
#18203251
select * from table where name regexp '^word[1-3]$'

lub

select * from table where name in ('word1','word2','word3')
 vidyadhar
vidyadhar
Edytowana odpowiedź 29. października 2014 в 12:26
-5
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Zuxriddin Muydinov
Zarejestrowany 12 godzin temu
2
Денис Анненский
Zarejestrowany 2 dni temu
3
365
Zarejestrowany 1 tydzień temu
4
True Image
Zarejestrowany 1 tydzień temu
5
archana agarwal
Zarejestrowany 1 tydzień temu
BG
DA
DE
EL
ES
FR
ID
IT
JA
KO
NL
PL
PT
RU
SK
SL
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem