[英]SQL select columns from table where name='a statement with 2 and more word'
當我的查詢是:
select * from table_name where name='jim'
一切安好。
但是當我的查詢是:
select * from table where ='a statement with 2 and more word'
例如這個查詢:
select columns from table where ='jim carrey'
查詢只考慮'jim'。 換句話說,查詢只考慮第一個詞,不考慮后面的任何詞。
SQL 不是那樣工作的。 如果您進行以下三個查詢:
select * from users where name = 'Frank Jones'
select * from users where name = 'Frank'
select * from users where name like 'Frank%'
如果我在我的 SQL 服務器數據庫上運行這些(在更改回我們的真實數據結構之后),我將得到第一個響應,即實際名為“Frank Jones”的人。我不會得到“Frank Jones III”
由於如果我運行第二個查詢,名字和姓氏都在名稱列中,我將不會得到任何結果。
如果我運行第三個查詢,我會得到每個人的名字,如果 Frank 但不會得到“Jason Franks”,因為我在搜索的短語末尾只有一個通配符。如果我想要每個擁有 Franks 和一部分的人我會以他們的名義寫這個查詢:
select * from users where name like '%Frank%'
這些是關於適用於我見過的每個數據庫的各種 where 子句含義的標准規則(盡管有些可能具有不同的通配符)。
您沒有說您使用的是哪個平台,這會使回答您的問題變得更加困難,但我會給出一個接近的答案。
您需要解析字符串中的第一個工作。 所以
SELECT aColumn
FROM aTable
WHERE name = LEFT('Jim Carrey', CHARINDEX('Jim Carrey',' '))
將是 sql server 中的一個例子
這些函數的名稱因平台而異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.