Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将查询更改为mysql?_Mysql_Codeigniter_Postgresql - Fatal编程技术网

将查询更改为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则不会。