Voici un exemple
Il y a des titres de certains animes:
SELECT title FROM table_name WHERE title LIKE the first 10 characters of a given string
Et j'aimerais sélectionner ces titres, qui contiennent les 10 premiers caractères du premier record, donc "My Hero Academia" dans cet exemple
Il est important que ce soit les N premiers caractères, comme 10,15,20. Donc SELECT title FROM nomtable WHERE title LIKE "% My hero Academia%" n'est pas la solution que je recherche.
Aussi: ce n'est qu'un exemple, il y en a beaucoup d'autres titres aussi, et je ne sais pas toujours quels sont les 10 premiers personnages. Je ne peux donc pas non plus simplement mettre les 10 premiers caractères de "My hero academia" dans la clause WHERE title LIKE .
Je veux dire quelque chose comme ceci:
XXX
Existe-t-il un moyen de faire cela avec SQL? Merci d'avance pour toute aide!
7 Réponses :
Mettez les 10 caractères comme ceci:
WHERE title LIKE 'aaaaaaaaaa%'
WHERE SUBSTRING(title, 1, n) = 'aaaaaaaaa'
pour filtrer une chaîne pour une valeur fixe partielle, vous pouvez utiliser comme opérateur comme 'yourstring%' par exemple:
SELECT title
FROM your_table
WHERE left(title,10) = 'thefirst10'
SELECT title
FROM your_table
WHERE substr(title,1,10) = 'thefirst10'
ou utiliser une fonction de chaîne comme substr ou gauche
SELECT title
FROM your_table
WHERE title LIKE 'thefirst10%'
Essayez ceci:
SELECT title FROM table_name WHERE title like "data structure%"
SELECT title FROM TABLE_NAME WHERE title LIKE '%' + substring('AAA' , 0 ,2)
First parameter of substring function represent of your string ,second start index and third end index.You can change end index as you want.
Utilisez le caractère générique (%):
SELECT title FROM table_name WHERE title LIKE "1234567890%"
cela pourrait vous aider à fonctionner pour mon postgray11. ithink il sera hwlp pour votre mysql
select * from t1 where title LIKE CONCAT((select * from t1 LIMIT 1),'%');
pouvez-vous fournir plus de précisions