J'ai cherché sur différents sites dont sqlfr.com et mysql.com mais pas moyen de trouver de solution à mon problème.
Et le problème justement je ne le connais pas... Mon idée était de créer une requête plus simple (et plus compréhensible par la même occasion) en remplaçant une instuction de 3 lignes par une plus simple qui tient sur une ligne:
de :
"SELECT * FROM table WHERE colonne LIKE 'a%' OR colonne LIKE 'b%' OR colonne LIKE 'c%' OR colonne LIKE 'd%' OR colonne LIKE 'e%' OR colonne LIKE 'A%' OR colonne LIKE 'B%' OR colonne LIKE 'C%' OR colonne LIKE 'D%' OR colonne LIKE 'E%';"
passer à :
"SELECT * FROM table WHERE colonne LIKE '[a-e]%' OR colonne LIKE '[A-E]%';"
Le problème, c'est qu'il n'y a pas de problème. Dans le premier cas, la base me retourne des élèments, dans le second cas aucun élèment retourné, et aucune erreur non plus.
Pour info j'utilise hsqldb, mais à part ça, je ne sais pas ce qu'il convient d'indiquer pour faciliter votre compréhension...
J'ai testé en remplaçant les ' par " mais la ça me retourne une erreur (je n'ai pas oublié de mettre \" et non ", evidemment ):
SQLException
: Column not found: [A-E]% in statement [SELECT * FROM recipes WHERE title LIKE "[A-E]%"]
SQLState: S0022
VendorError: -28
Dans ce cas, c'est un problème de syntaxe de la requête, mais je ne sais pas où...
Ensuite j'ai essayé avec REGEXP de la façon suivante:
"SELECT * FROM table WHERE colonne REGEXP '^[a-e]' OR colonne REGEXP '^[A-E]';"
Là encore une erreur m'est retournée, mais je ne la comprends pas plus:
SQLException
: NULL value as BOOLEAN
SQLState: S1000
VendorError: -106
Voilà, mon obstination a des limites, tout comme mes connaissances en base de données...
Merci d'avance pour votre aide.