2016-03-22 41 views
-1

我想從一個表中使用數字範圍選擇數據。總之,我想選擇的路徑,其中有6到9的範圍內的數字sql選擇使用之間,並像

$sql = "select * from users where path_name like between '%6%' and '%9%' "; 

但是沒有什麼被返回。

任何人都有更好的方法來做到這一點?

+0

假設它是MySQL的使用[REGEXP(http://dev.mysql.com/doc/refman/5.7/en/regexp.html) – cha

+0

提供什麼你實際上是試圖實現更詳細。之間將不會運行你想要的字符串值。 –

+1

您正在使用哪些DBMS?並請[編輯]你的問題,並添加表格定義爲'create table'語句,[請不要截圖](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-當問的問題/ 285557#285557) –

回答

2

如果你想69之間返回所有號碼您不需要like

$sql = "select * from users where path_name between 6 and 9"; 
+0

路徑名具有諸如download5,download6,download7,download8,download9,download10等值。我想根據數字6到8選擇路徑名。這就是爲什麼我想使用'like'。 –

0

由於path_name是你應該使用條件語句數。考慮使用where path_name >= 6 and path_name <= 9或更簡單的5和10與尖銳的條件。

0
SELECT * FROM USERS 
WHERE SUBSTR(PATH_NAME, 4, len(PATH_NAME)-4) BETWEEN 6 and 9 

我想你的路徑名值都喜歡

+0

記住值6到9是虛擬的..我實時我會用動態變量替換它們 –

+0

http://forgetcode.com/Teradata/1619-SUBSTR想知道更多關於SUBSTR()的信息 –

0

如果是SQL Server中,Like可以通過一系列的比賽中使用「axr6b」

declare @users table (path_name varchar(10)) 
insert @users values 
    ('download1'), ('download3'), ('download5'), ('download6'), 
    ('download7'), ('download9'), ('download10') 

select * from @users where path_name like '%[6-9]%' 
+0

那是LIKE產品特定的擴展...(並沒有dbms標籤。) – jarlh

+1

@jarlh謝謝,在答案 – Eric

+0

@Eric中添加了dbms類型,這正是我想要的,但是我怎麼能在mysql中做到這一點? –