在查询过程中,除了等于判断外,还涉及大于、小于、不等于、between、in等多种条件,此时需使用查询表达式,其基本格式为:\$map = array(表达式, 查询条件),通过该方式灵活设定各类查询规则。
1、 创建一个ThinkPHP项目tp,入口文件所示。
2、 创建名为qq_game的数据表,具体内容见附图。
3、 在App/Conf目录下的config.php中配置数据库连接信息,具体设置所示。
4、 在tp项目的App/Lib/Action目录中创建SearchAction.class.php文件,并定义index函数,用于实现表达式查询功能。
5、 如图:
6、 查询中的等于操作可用表达式 EQ 表示,其对应代码所示。通过生成的 SQL 语句可知,两种写法效果相同,最终输出的查询结果一致,具体结果所示。
7、 不等于符号用<>表示,对应表达式为NEQ,具体代码所示。
8、 大于用GT表示,大于等于用EGT表示。
9、 小于用LT表示,小于等于用ELT表示。
10、 分数与23的大小关系所示。
11、 SQL查询结果显示如下:
12、 可用字符串形式表示where条件,如大于(GT)操作。
13、 BETWEEN:与SQL中的between用法相同,可用于字符串或数组作为查询条件。
14、 查询分数介于23至29分,示意图如下。
15、 两种查询条件得到的SQL结果一致,所示。
16、 查询分数小于23或大于29的记录,即不在23至29范围内的数据。
17、 二、IN:等同于SQL中的in,查询条件可接受字符串或数组形式。
18、 以IN为例,查找分数为23或25的记录,具体所示。
19、 以下为查询的SQL语句,执行后数据库将直观显示结果。
20、 查询分数不在23和25分之内,即分数不等于23或25分的情况,所示。
21、 以下是查询的SQL语句,执行后数据库将直观展示结果。
22、 SQL语句及其执行结果见下图所示。
23、 支持LIKE及数组格式,多个条件默认以OR逻辑连接,具体所示。
24、 可将逻辑条件设为AND,示意图如下:
25、 like与notlike可作为查询条件,置于同一数组中进行查询,具体所示。
26、 最终SQL语句为:
27、 当名称包含传奇或剑时,筛选符合条件的数据记录,实现对特定关键词的模糊匹配查询。
28、 并且(价格字段中不包含兵王且不包含古剑字样)
29、 查询条件不会被视作字符串处理,因此可直接使用SQL支持的各种语法,如函数和字段名等,适用于各类查询场景。
30、 结果见下图
31、 用于更新数据信息
32、 修改id为3的记录,将name更新为thinkphp,同时分数增加1,下图展示原数据及修改代码。
33、 SQL语句及执行结果见下图所示
