2017-03-28 8 views
0

私は整数のリストである文字列を受け入れるmysqlストアドプロシージャを持っています。私はこの文字列をmsql、in(),,を使って検索したいと思います。mysqlの文字列からintリストを作成するには?

例: 文字列パラメータ= "1,2,3,4,5,6"。

SELECT * FROMテーブルから場所(パラメータ)でtable.id。

答えて

1

は、私はあなたがfind_in_setを使用することができますね。

select * 
from table 
where find_in_set(id, parameter); 

注意、しかし、上記のidカラム上のいずれかの場合は、インデックスを使用してから、オプティマイザを制限すること。

"select * from table where id in (" + parameter + ")" 

をし、実行するためにそれを使用:あなたは、あなたのアプリケーションにSQLインジェクションなどをチェックした後、このようなSQLにそれを連結することができる場合

、それはパフォーマンスが向上します。

+0

私はまた、あなたが示唆したまったく同じFIND_IN_SETでそれをやっていたが、それは一列のみを返し、それがために最初の非int型の文字で停止FIND_IN_SET動作またはint型に文字列をキャストするのかもしれません。 アプリケーションからSQLを直接呼び出すことができます。しかし、可能であれば私はストアドプロシージャを好むでしょう。 – andrisbandris

関連する問題