将查询更改为mysql?

时间:2014-07-20 16:58:53

标签: mysql codeigniter postgresql

我有这样的查询

$where = $where." CAST({$field} AS TEXT) = '{$value_i}' AND ";

$a[] = "CAST({$field} AS TEXT) ~* '{$value_i}'";

如果我在postgres上执行它没关系,如果我在CAST $ field = text中执行mysql错误,如何在mysql上更改查询?

谢谢b4。

2 个答案:

答案 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

  • BINARY [(N)]
  • CHAR [(N)]
  • DATE
  • DATETIME
  • DECIMAL [(M [,d)]
  • 签名[INTEGER]
  • TIME
  • UNSIGNED [INTEGER]

参考this page了解更多信息。

如您所见,TEXT不是其中之一。您可能需要CHAR