我有以下查询在sql
中正常工作SELECT *
FROM `dsrequest`
WHERE dsrequeststatusID NOT IN ('4', '5', '6')
AND CASE
WHEN ('Κ' REGEXP '^[0-9]+$') THEN
dsrequestClientAfm LIKE 'Κ%'
ELSE
( dsrequestClientFirstName LIKE 'Κ%' OR dsrequestClientLastName LIKE 'Κ%' OR dsrequestClientEmail LIKE 'Κ%' )
END
但是当我使用变量而不是'K'将它放在php中时,我给出了错误的结果集,这似乎是部分根本不起作用的地方。我得到dsrequestStatusID为4的记录,不应该是这种情况。
这是我在php中使用的查询:
$this->db->query("SELECT *
FROM `dsrequest`
WHERE dsrequeststatusID NOT IN ('4', '5','6')
AND CASE
WHEN ('$searchString' REGEXP '^[0-9]+$') THEN
dsrequestClientAfm LIKE '$searchString%'
ELSE
( dsrequestClientFirstName LIKE '$searchString%' OR dsrequestClientLastName LIKE '$searchString%' OR dsrequestClientEmail LIKE '$searchString%' )
END");
任何人都可以发现错误吗?
更新:
建议后我设法打印查询,它是相同的
SELECT * FROM `dsrequest`
WHERE dsrequeststatusID NOT IN ('4', '5','6')
AND CASE
WHEN ('Κ' REGEXP '^[0-9]+$') THEN
dsrequestClientAfm LIKE 'Κ%'
ELSE
( dsrequestClientFirstName LIKE 'Κ%' OR dsrequestClientLastName LIKE 'Κ%' OR dsrequestClientEmail LIKE 'Κ%' )
END
任何人都可以发现我不能发现任何差异吗?正则表达式是问题吗?他们在sql和php之间有什么区别吗?
答案 0 :(得分:0)
很抱歉让你们所有人陷入困境。问题出在我的codeigniter代码的其他地方,而不是查询。一旦我解决了这个问题,现在查询就像魅力一样。