Estoy usando un servicio SQL en línea donde puede escribir una consulta SQL y vincularla a una URL. En Android, puede usar la URL en una solicitud para devolver los resultados en formato JSON

Para pasar un parámetro al servicio, debe usar dos puntos. como este ejemplo:

SELECT Password FROM Users
where Username = :name

Usarías esta consulta con

http://api.a16_sd502.studev.groept.be/getUserLogin/name

Donde puede reemplazar el apellido con lo que desee.

Ahora tengo otra consulta en la que quiero buscar en la base de datos que usa comodines.

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

Esto devuelve:

[
    {
        "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"
    }
]

Esto no usa un parámetro, por lo que me gustaría reemplazar 'harry' con ': query'. De esa manera puedo pasar un parámetro a través de la URL, como en el primer ejemplo así:

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

Sin embargo, esto no funciona, ya que devuelve una matriz JSON vacía. ¿Qué error estoy haciendo? Supongo que está relacionado con la sintaxis, pero no puedo entenderlo.

¿Alguna solución?

0
Frederik Delbeke 10 dic. 2016 a las 19:03
¿Puede mostrarnos el código Java real que utilizó para la consulta LIKE?
 – 
Tim Biegeleisen
10 dic. 2016 a las 19:06
Lo siento, no estoy seguro de a qué te refieres. La configuración de la consulta se maneja en este servicio web y en Java solo necesito la URL para obtener los resultados de la consulta.
 – 
Frederik Delbeke
10 dic. 2016 a las 19:51

1 respuesta

La mejor respuesta

Prueba esto:

SELECT name, releaseDate, rating
FROM Movies 
WHERE name LIKE CONCAT('%',:query,'%')
0
SqlZim 11 dic. 2016 a las 15:44
La primera sugerencia también devuelve una matriz JSON vacía. Pero el segundo funcionó bien, ¡muchas gracias!
 – 
Frederik Delbeke
10 dic. 2016 a las 19:53
1
Como advertencia, esta consulta es propensa a la inyección de SQL y, si es posible, se deben usar declaraciones preparadas.
 – 
Tim Biegeleisen
11 dic. 2016 a las 02:59