Codeigniter mysql其中不等于查询

时间:2013-02-01 04:59:29

标签: mysql codeigniter where

Mysql codeigniter查询无法正常工作。 假设mysql表看起来像这样:

 user_id|user_name
       1|john
       2|alex
       3|sam

此处 user_name 是唯一的

以下查询应返回 false ,如果 user_name = john user_id = 1 true ,如果说< strong> user_name = john 和 user_id = 2

$this->db->get_where('user', array('user_name' => $name,'user_id !=' => $userid));

但在 user_name = john user_id = 1 的情况下,它会返回 true

任何人都可以建议我另一种查询方式不等于。

print($ this-&gt; db-&gt; last_query())给出:

SELECT * FROM(user)WHERE user_name ='john'AND user_id!='1'

6 个答案:

答案 0 :(得分:4)

为什么不使用简单的$this->db->query('your query');

答案 1 :(得分:2)

只需尝试这个

$this -> db -> where('invitee_phone !=', $user_phone);

答案 2 :(得分:1)

你也可以按照以下方式行事。它对我有用

$total = 5;
$CI = get_instance();
$CI->load->database();
$CI->db->order_by('id','asc');
$topusers = $CI->db->get_where('users',array('user_type != 1  && `status` =' => 1),$total,0);
echo $CI ->db ->last_query();
die;

如果仍然无效,可以使用@rohit建议:$ this-&gt; db-&gt; query('your query');

答案 3 :(得分:0)

类型1:

使用->where("column_name !=",$columnname)适用于一列。

但是如果你想检查多列,你必须在 where 子句中形成一个数组

喜欢这个

$whereArray = array(
                "employee_name" => $name,
                "employee_id !=" => $id,
        );

$this->db->select('*')->from('employee')->where($whereArray);

类型2:

我们可以在哪里写下我们想要的内容。

$thi->db->where(("employee_id =1 AND employee name != 'Gopi') OR designation_name='leader@gopis clan'");

Type 2 适合处理组合查询,我的意思是 paranthesis &#34;()&#34;

答案 4 :(得分:0)

您可以按照以下代码:

@Rule
public ActivityTestRule<AppLauncherActivity> activityRule = new ActivityTestRule<AppLauncherActivity>(AppLauncherActivity.class){
    @Override protected Intent getActivityIntent() {
        Intent intent = super.getActivityIntent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("myapp://search/777"));
        return intent;
    }
};

如果你通过$ name =&#39; john&#39;和$ userid =&#39; 1&#39;然后它返回空数组。

答案 5 :(得分:0)

使用$this->db->query('your query');的问题在于它不可移植。接受查询生成器方法的最重要原因之一是,无论您使用哪种数据库驱动程序,CodeIgniter都能确保语法正确。

如果可以进行一些讨论,我可能想听听为什么您的表中需要复合主标识符,并且我想看看您的表架构是什么样的。但是,我认为讨论的时间已经过去了。

有效地,您想返回一个布尔结果,说明用户名和ID的组合是否可用-如果一个匹配,但不匹配,则true(可用)。

要实现此目的,您将需要在表中搜索具有两个限定条件的精确匹配行,对行进行计数,将整数转换为布尔值,然后返回相反的值(语法比说明要简单)。

请考虑使用这种干净,直接且便携式的单缸纸。

return !$this->db->where(['user_name' => $name,'user_id' => $userid])->count_all_results('user');

如果计数为false,则返回> 0;如果计数为true,则返回0