3 Stimmen

Wie wählt man gleiche Werte aus mehreren Spalten in Sql aus?

Ich habe zwei Tabellen mit Spalten:

Genres  
  ID  
  genre

y

Adjectives
  ID
  adjective_title

Ich muss einen Select ausführen, der die übereinstimmenden Werte aus beiden Tabellenspalten mit der like Syntax.

Wenn zum Beispiel ep war der Wert, der mit like würden die Ergebnisse wie folgt aussehen:

result_column:
--------------
epiphonic -- (from genres table)
epic      -- (from adjectives table)

usw. .

Ich bin mir ziemlich sicher, dass ich eine Subquery verwenden muss, um die Ergebnisse zurückzugeben.

8voto

Johnno Nolan Punkte 28357

Versuchen Sie dies

SELECT genre AS result
FROM genres
WHERE genre LIKE '%ep%'
UNION
SELECT adjective_title AS result
FROM 
  adjectives
WHERE adjective_title LIKE '%ep%'

Die Vereinigung wird Duplikate in jeder Abfrage beseitigen UNION ALL für jede verwenden.

0voto

rsp Punkte 22749

Sie können dies ohne Unterauswahlen tun, aber es wird nicht schnell auf große Tabellen sein, indem Sie concat verwenden, um die Zeichenfolge zu erstellen, auf die Sie den like-Operator anwenden:

select g.ID, g.genre, a.adjective_title from Genres g, Adjectives a where
concat(g.genre, a.adjective_title) like '%epic%'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X