我正在使用 LIKE 查看我的数据库中是否存在类似的order_id。当我运行应用程序时,我看到下面的代码不会返回任何值。它只返回null值。
$temp_orders = $this->transaction_model->get_similar_user_temp_transaction($cart_order_id);
function get_similar_user_temp_transaction($order_id)
{
$query = $this->db->select('*')
->from('temp_transaction')
->like('order_id', $order_id)
->get();
return ($query->num_rows() < 1) ? null : $query->result();
}
请检查以上代码。帮助将不胜感激
答案 0 :(得分:0)
在更改语句顺序后尝试使用您的代码
function get_similar_user_temp_transaction($order_id)
{
$query = $this->db->select('*')
->like('order_id', $order_id)
->from('temp_transaction')
->get();
return ($query->num_rows() < 1) ? null : $query->result();
}
修改强>
如果您想匹配确切的order_id,请使用where
代替like
function get_similar_user_temp_transaction($order_id)
{
$query = $this->db->select('*')
->where('order_id', $order_id)
->from('temp_transaction')
->get();
return ($query->num_rows() < 1) ? null : $query->result();
}
答案 1 :(得分:0)
在like
cluase
where
$query = $this->db->select('*')
->from('temp_transaction')
->where("order_id LIKE '%$order_id%'")->get();
答案 2 :(得分:0)
这里 SQL 不起作用,因为喜欢不使用INT值
您有两种选择: -
1. ->like(CONVERT(order_id, CHAR(16), $order_id)
2. Use ->where(order_id, $order_id)
答案 3 :(得分:0)
如果您尝试匹配确切使用where子句。
//dont need ->select('*') //excluding select gives same equivalent
//dont need from
return $this->db->where('order_id', $order_id)->get('temp_transaction')->result();