将查询更改为mysql?
我有这样的疑问将查询更改为mysql?,mysql,codeigniter,postgresql,Mysql,Codeigniter,Postgresql,我有这样的疑问 $where = $where." CAST({$field} AS TEXT) = '{$value_i}' AND "; $a[] = "CAST({$field} AS TEXT) ~* '{$value_i}'"; 如果我在postgres上执行,没关系,如果我在mysql上执行,CAST$field=text中出现错误,如何在mysql上转换为查询 谢谢b4。以下是唯一有效的类型,您可以像MySql一样强制转换 二进制[(N)] 字符[(N)] 日期 日期时间 十
$where = $where." CAST({$field} AS TEXT) = '{$value_i}' AND ";
$a[] = "CAST({$field} AS TEXT) ~* '{$value_i}'";
如果我在postgres上执行,没关系,如果我在mysql上执行,CAST$field=text中出现错误,如何在mysql上转换为查询
谢谢b4。以下是唯一有效的
类型
,您可以像MySql一样强制转换
- 二进制[(N)]
- 字符[(N)]
- 日期
- 日期时间
- 十进制[(M[,D])]
- 有符号[整数]
- 时间
- 无符号[整数]
TEXT
不是其中之一。您可能想要CHAR
试试看
$where = $where." CAST({$field} AS CHAR) = '{$value_i}' AND ";
$a[] = "CAST({$field} AS CHAR) RLIKE '{$value_i}'";
。特别注意那些可能表现稍有不同的行为;但是,默认情况下它不区分大小写
您是否需要显式地使用
CAST
取决于几件事 哪个列是$field?MySQL会自动进行大量转换,而PostgreSQL则不会。