我有这样的查询
$where = $where." CAST({$field} AS TEXT) = '{$value_i}' AND ";
$a[] = "CAST({$field} AS TEXT) ~* '{$value_i}'";
如果我在postgres上执行它没关系,如果我在CAST $ field = text中执行mysql错误,如何在mysql上更改查询?
谢谢b4。
答案 0 :(得分:1)
尝试
$where = $where." CAST({$field} AS CHAR) = '{$value_i}' AND ";
$a[] = "CAST({$field} AS CHAR) RLIKE '{$value_i}'";
The documentation lists all operators and function MySQL 5.6 knows。请特别注意RLIKE
可能与~*
略有不同;但是,它默认不区分大小写。
是否需要明确使用CAST
取决于一些事情。 This articel explains which types are automatically converted and when
答案 1 :(得分:0)
以下是MyCql中唯一有效TYPE
CAST
。
参考this page了解更多信息。
如您所见,TEXT
不是其中之一。您可能需要CHAR
。