2016-12-10 14 views
0

SQL照会を作成してURLにリンクするオンラインSQLサービスを使用しています。アンドロイドでは、要求にURLを使用して結果をJSON形式で返すことができます。SQLサーバーでのパラメーターとワイルドカードの使用

サービスにパラメータを渡すには、コロンを使用する必要があります。この例のように :

SELECT Password FROM Users 
where Username = :name 

あなたは

あなたが好きで最後の「名前」を置き換えることができます
http://api.a16_sd502.studev.groept.be/getUserLogin/name 

でこのクエリを使用します。

ここで、ワイルドカードを使用するデータベースで検索する別のクエリがあります。

SELECT name, releaseDate, rating 
FROM Movies 
WHERE name LIKE '%harry%' 

これが返されます。

[ 
    { 
     "name": "Harry Potter and the Sorcerer's Stone", 
     "releaseDate": "2001-11-22", 
     "rating": "7.5" 
    }, 
    { 
     "name": "Harry Potter and the Chamber of Secrets", 
     "releaseDate": "2002-11-02", 
     "rating": "7.4" 
    }, 
    { 
     "name": "Harry Potter and the Prisoner of Azkaban ", 
     "releaseDate": "2004-06-02", 
     "rating": "7.8" 
    } 
] 

これは、パラメータを使用していないので、私は 'ハリー' を交換したいと思う ':クエリ'。私は、パラメータを渡すことができますこの方法は、このような最初の例のように、URLの谷:それは空のJSON配列を返すよう

http://api.a16_sd502.studev.groept.be/searchQuery/query 

しかし、これは、動作しません。私はどのような誤解をしていますか?私はそれが構文に関連していると仮定しますが、私はそれを理解することはできません。

どのようなソリューションですか?

+0

あなたは私たちにあなたが 'LIKE'クエリのために使用される実際のJavaコードを表示することができますか? –

+0

申し訳ありませんが、私はあなたが何を意味するか分からない。クエリの設定はこのWebサービスで処理され、Javaではクエリから結果を取得するためのURLのみが必要です。 –

答えて

0

はこれを試してみてください:

SELECT name, releaseDate, rating 
FROM Movies 
WHERE name LIKE CONCAT('%',:query,'%') 
+0

最初の提案は、空のJSON配列も返します。しかし、2番目のものはうまく働いた、ありがとう! –

+1

警告として、このクエリはSQLインジェクションが発生しやすく、可能な場合はプリペアドステートメントを使用する必要があります。 –

関連する問題