Maison > base de données > tutoriel mysql > Comparaison de chaînes et de nombres dans MySQL (avec exemples)

Comparaison de chaînes et de nombres dans MySQL (avec exemples)

不言
Libérer: 2018-12-21 10:22:13
avant
4123 Les gens l'ont consulté

Le contenu de cet article concerne la comparaison des chaînes et des nombres dans MySQL (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Dans les projets, nous utilisons souvent la recherche floue, mais si nous comparons par erreur les types de chaînes et les types numériques, les résultats de la recherche ne sont parfois pas ceux attendus. Par exemple :

L'instruction XML dans mybatis est la suivante :

<if test="criteria != null and criteria.length()>0">
    AND (name like concat("%",#{criteria},"%") OR id = #{criteria})
</if>
Copier après la connexion

Lors de la recherche, nous saisissons "884 test", et le résultat inclura l'enregistrement avec l'id=884, mais le nom ne correspond pas. C'est le piège de la comparaison de chaînes et de nombres MySQL : lors de la comparaison, le type de chaîne sera converti en un type entier, en commençant par la première lettre et en se terminant lorsqu'un type non numérique est rencontré.

Regardons quelques exemples :

SELECT "abc"=1;
结果:0
Copier après la connexion
SELECT "1abc"=1;
结果:1
Copier après la connexion
SELECT "abc"=0;
结果:1
Copier après la connexion
SELECT "a2bc"=2;
结果:0
Copier après la connexion

Alors, comment résoudre ce problème ? En fait, il vous suffit de faire un type ? conversion comme suit :

SELECT "2bc"=cast(2 as CHAR);
结果:0
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
MySQL arrête le processus
Depuis 1970-01-01 08:00:00
0
0
0
Env中mysql
Depuis 1970-01-01 08:00:00
0
0
0
Erreur lors de l'installation de MySQL sous Linux
Depuis 1970-01-01 08:00:00
0
0
0
php - problème de surveillance MySQL
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal