2016-03-22 4 views
-1

数字の範囲を使用してテーブルからデータを選択しようとしています。要するに、6から9の範囲の数字があるパスを選択したいと考えます。sqlはbetweenとlikeの間で選択します

$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) –

答えて

1

を使用することができますこれは私が男を探していたものです

$sql1 = "select * from users where path_name REGEXP '[6-9]'"; 参考 Regular expressions

Example of regular expression in sql

+0

すばらしい、今これを答えとしてマークすることができます:) – Eric

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を使用して簡単にしてください。

私はあなたのPATH_NAME値が 'axr6b' のようなものと仮定し
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はレンジの試合で

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ありがとう、dbms型を答え – Eric

+0

@Ericに追加しました。まさに私が望んでいたものですが、どうすればmysqlでそれを行うことができますか? –

関連する問題