我用codeigniter写了一个查询,需要在from()
方法中取消转义子查询。我有一个复杂的查询,在这里我为您简化
$this->db->from("(SELECT * FROM acme WHERE CONCAT(',', RTRIM(rule), ',') LIKE '%,PER_UNIT,%') AS acme_filtered")
become:
SELECT * FROM (SELECT * FROM acme WHERE CONCAT(',', RTRIM(rule), ',') LIKE '%,`PER_UNIT`,%') AS acme_filtered
喜欢'%,PER_UNIT,%'
变成的部分
LIKE '%,
PER_UNIT ,%'
找不到数据,因为附加字符 ('( 将字符串换行。如何删除此字符以使查询向右转?
你可以这样做,但我不知道它的含义,因为它击败了逃逸系统。
小心使用它!
$this->db->from("(SELECT * FROM acme WHERE CONCAT(',', RTRIM(rule), ',') LIKE '%,PER_UNIT,%') AS acme_filtered");
// the rest of your "complex query" code here
$query = $this->db->get_compiled_select();
$query = str_replace('%, `', '%,', $query);
$query = str_replace('`, %', ',%', $query);
$result = $this->db->query($query);