簡體   English   中英

SQL select columns from table where name='a statement with 2 and more word'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM