English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文实例讲述了ThinkPHP的表达式查询。分享给大家供大家参考,具体如下:
ThinkPHP表达式
这里所说的表达式,是指ThinkPHP框架中特有的表达式。这些表达式用于查询或更新删除等操作的Where条件及模板标签中。
Where条件中使用表达式
Where条件表达式格式为:
$map['字段名'] = array('表达式', '操作条件');
其中 $map 是一个普通的数组变量,可以根据自己的需求命名。上述格式中的表达式实际上是运算符的意义:
TP运算符 | SQL运算符 | 例子 | 条件查询实际 |
---|---|---|---|
eq | = | $map['id'] = array('eq',100); | equivalente a: $map['id'] = 100; |
neq | != | $map['id'] = array('neq',100); | id != 100 |
gt | > | $map['id'] = array('gt',100); | id > 100 |
egt | >= | $map['id'] = array('egt',100); | id >= 100 |
lt | < | $map['id'] = array('lt',100); | id < 100 |
elt | <= | $map['id'] = array('elt',100); | id <= 100 |
like | like | $map['username'] = array('like','Admin%'); | username like 'Admin%' |
between | between and | $map['id'] = array('between','1,8'); | id BETWEEN 1 AND 8 |
not between | not between and | $map['id'] = array('not between','1,8'); | id NOT BETWEEN 1 AND 8 |
in | in | $map['id'] = array('in','1,5,8'); | id in(1,5,8) |
not in | not in | $map['id'] = array('not in','1,5,8'); | id not in(1,5,8) |
and (predefinito) | and | $map['id'] = array(array('gt',1),array('lt',10)); | (id > 1) AND (id < 10) |
or | or | $map['id'] = array(array('gt',3),array('lt',10), 'or'); | (id > 3) OR (id < 10) |
xor (esclusivo o) | xor | Il risultato è true solo quando uno dei due input è true, altrimenti è false, esempio omesso. | 1 xor 1 = 0 |
exp | Espressione combinata | $map['id'] = array('exp','in(1,3,8)'); | $map['id'] = array('in','1,3,8'); |
Come SQL, gli operatori di ThinkPHP non distinguono tra maiuscole e minuscole, eq è uguale a EQ.
Le condizioni between e in supportano stringhe o array, quindi le seguenti due espressioni sono equivalenti:
$map['id'] = array('not in','1,5,8'); $map['id'] = array('not in',array('1','5','8'));
Espressione exp
L'exp nell'elenco sopra non è un operatore, ma un'espressione complessa per supportare la configurazione di condizioni più complesse. Le condizioni di operazione di exp non vengono trattate come stringhe e possono utilizzare qualsiasi sintassi supportata da SQL, inclusi i nomi dei campi e delle funzioni.
exp può essere utilizzato non solo per le condizioni where, ma anche per l'aggiornamento dei dati, come:
$Dao = M("Article"); // Costruire l'array di dati per save, +1 per il numero di clic dell'articolo $data['aid'] = 10; $data['counter'] = array('exp','counter+1'); // Salva i dati modificati in base alle condizioni $User->save($data);
Nota: per l'operazione di somma e sottrazione sui campi numerici, è possibile utilizzare direttamente
Per coloro che sono interessati a ulteriori contenuti su ThinkPHP, è possibile consultare la sezione speciale di questo sito: 'Tutorial di base di ThinkPHP', 'Riassunto delle tecniche di manipolazione dei modelli di ThinkPHP', 'Riassunto dei metodi comuni di ThinkPHP', 'Tutorial di base dei modelli smarty' e 'Riassunto delle tecnologie di template PHP'.
Spero che l'articolo sia utile per tutti coloro che progettano programmi PHP basati sul framework ThinkPHP.
Dichiarazione: il contenuto di questo articolo è stato preso da Internet, il copyright spetta ai rispettivi proprietari, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale connessa. Se trovi contenuti sospetti di violazione del copyright, è gradito inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.