php - CodeIgniter/MySQL - 选择,其中不等于和喜欢两次

标签 php mysql sql codeigniter

在 CodeIgniter 中使用以下事件记录查询时,我在返回正确记录时遇到问题:

$q = $this->db->query("SELECT fName, lName, userID 
                       FROM user 
                       WHERE userID !='$user_id'
                       AND fName LIKE '%$search_criteria%' 
                       OR lName LIKE '%$search_criteria%'"); 

查询基于$search_criteria搜索用户表。 $user_id 是登录用户的 ID,因此他们不会出现在搜索结果中。

如果我搜索登录用户的名字,它不会在搜索结果中返回登录用户,但如果我按姓氏搜索,它会返回登录用户,我不明白为什么...

最佳答案

逻辑上存在缺陷,您想要检查用户 ID,并检查名字或姓氏...我在这里所做的是查找 userID AND fname 或 lname。括号分隔条件,允许 fname 或 lname,但始终为 ID

$q = $this->db->query("SELECT fName, lName, userID 
                       FROM user 
                       WHERE userID !='$user_id'
                       AND (fName LIKE '%$search_criteria%' 
                       OR lName LIKE '%$search_criteria%'")); 

关于php - CodeIgniter/MySQL - 选择,其中不等于和喜欢两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894801/

相关文章:

php - 如何避免在 php 中循环 sql 查询?

php - 错误 : git was not found - installing laravel with composer windows

如果行的所有列条目不存在,MySQL 插入表

MySQL : Initialize mySql variable inside a query

mysql - 了解 SQL 别名

php - 将新语言名称插入到 codeigniter 中的数据库后,在语言文件夹中创建包含嵌套 php 文件的文件夹

php - 由于数组数据类型错误,无法插入 mysql 表

mysql - 程序在执行准备好的语句时静默终止

mysql - 从查询中获取下一行

sql - 我如何处理 SQL 中的长比较