La fonction de requête est souvent utilisée dans le développement quotidien. Aujourd'hui, notre site Web PHP chinois vous guidera à travers la méthode d'implémentation de la fonction de requête et vous présentera brièvement comment utiliser la fonction de requête dans thinkphp.
Mode de correspondance SQL
1 Lorsque vous utilisez le mode de correspondance SQL, vous ne pouvez pas utiliser l'opérateur = ou ! =, utilisez plutôt l'opérateur LIKE ou NOT LIKE ;
2. En utilisant le mode de correspondance SQL, MYSQL fournit 2 types de caractères génériques .
% représente n'importe quel nombre de caractères (y compris 0)
_ représente n'importe quel caractère unique
3. Utilisez le mode de correspondance SQL, si le format de correspondance ne contient pas ce qui précède. L'effet de requête de l'un des deux caractères génériques est équivalent à = ou ! =
4. Utiliser le modèle de correspondance SQL, lors de la correspondance, insensible à la casse
#查询用户名以某个字符开头的用户 #查询用户名以字符'l'开头的用户: l% SELECT * FROM user WHERE username LIKE 'l%'; #查询用户名以某个字符结尾的用户 #查询用户名以字符'e'结尾的用户:e% SELECT * FROM user WHERE username LIKE 'e%'; #查询用户名包含某个字符的用户 #查询用户名包含字符'o'的用户:%o% SELECT * FROM user WHERE username LIKE '%o%'; #查询包含三个字符的用户 SELECT * FROM user WHERE username LIKE '_'; #查询用户名第二个字符为o的用户:_o% SELECT * FROM user WHERE username LIKE '_o%';
expression régulière modèle de correspondance
Caractère générique (expression régulière)
Correspond à n'importe quel caractère
* Correspond à 0 caractère ou plus avant
x* signifie correspondre à n'importe quel nombre de. x caractères
[..] Correspond à n'importe quel caractère entre crochets
[abc] Correspond à le caractère ab ou c
[a-z] Correspond à n'importe quelle lettre
[0-9] Correspond à n'importe quel nombre
[0-9]* Correspond à n'importe quel nombre de n'importe quel nombre
[a-z]* Correspond à n'importe quel nombre de lettres
^ représente un certain caractère ou Chaîne commence
^a signifie qu'il commence par la lettre a
$ signifie qu'il se termine par un certain caractère ou une certaine chaîne
s$ signifie qu'il se termine par la lettre s
Le les opérateurs utilisés pour faire correspondre les modèles à l'aide d'expressions régulières sont :
REGEXP ou NOT REGEXP (RLIKE ou NOT RLIKE)
Remarque : les modèles de correspondance d'expressions régulières, leurs expressions régulières. Si la formule apparaît n'importe où dans la correspondance champ, le motif de
sera mis en correspondance. Il n'est pas nécessaire de mettre un caractère générique des deux côtés pour le faire correspondre
Si seul le caractère générique est utilisé pour correspondre, supposez N ; , alors son modèle de correspondance indique qu'il est supérieur ou égal à N
Comment comprendre la phrase ci-dessus ?
signifie
... Correspond aux données supérieures ou égales à 3 caractères
.... Correspond aux données supérieures ou égales à 4 caractères
# Requête le nom d'utilisateur avec le caractère l Utilisateurs commençant par : ^l;
#Écriture d'expression régulière
SELECT * FROM user WHERE username REGEXP '^l'; #sql匹配模式写法: SELECT * FROM user WHERE username LIKE 'l%'; #查询用户名正好是三个字符的用户:^...$; #sql匹配模式写法: SELECT * FROM user WHERE username LIKE '_'; #正则表达式写法 SELECT * FROM user WHERE username REGEXP '^...$';
thinkphp comme requête floue
Utilise actuellement thinkframework phpDe plus en plus de personnes développent des projets En raison de sa bonne encapsulation, de nombreuses parties du développement PHP pur ne sont pas faciles à démarrer. Cet article utilise une requête floue comme exemple pour illustrer cela.
Ici, nous utilisons principalement des exemples pour illustrer l'utilisation :
ThinkPHP peut prendre en charge l'utilisation directe de chaînes comme conditions de requête, mais dans la plupart des cas, il est recommandé d'utiliser des tableaux d'index ou des objets comme conditions de requête, parce que c'est plus sûr.
1. Utiliser des chaînes comme conditions de requête
C'est la manière la plus traditionnelle, mais elle n'est pas très sûre
Par exemple :
$User = M("User"); // 实例化User对象 $User->where('type=1 AND status=1')->select();
La dernière. généré L'instruction SQL est
SELECT * FROM think_user WHERE type=1 AND status=1
Si vous effectuez une requête multi-champs, la relation logique par défaut entre les champs est ET ET logique, mais le jugement logique par défaut peut être modifié en utilisant les règles suivantes, en utilisant _logic pour définir la logique de la requête :
$User = M("User"); // 实例化User对象 $condition['name'] = 'thinkphp'; $condition['account'] = 'thinkphp'; $condition['_logic'] = 'OR'; // 把查询条件传入查询方法 $User->where($condition)->select();
L'instruction SQL finale générée est
SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'
2. Le mode tableau comme condition de requête
Cela dit, comment implémentez une requête similaire, comme suit Regardez
$userForm=M('user'); $where['name']=array('like','php%'); $userForm->where($where)->select();
et la requête similaire ici est :
name like 'php%'
Instruction de requête :
$where['name']=array('like',array('%php%','%.com'),'OR');
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!