mysql - 如何将 SQL where LENGTH() 条件转换为 xPDO?

标签 mysql modx modx-revolution xpdo

如何表达其中的 where 子句:

select * from TABLE where LENGTH(COLUMN)  > 0

在 xPDO 中?

$criteria->where(array('LENGTH(customer_po_num):>' => '0'));

不起作用,它会产生如下结果:

`InventoryData`.`LENGTH(customer_po_num)` > '0' 

最佳答案

对于不受支持的 SQL 运算符,您通常可以将条件作为字符串而不是数组包含在查询中:

$criteria->where('LENGTH(customer_po_num) > 0');

编辑:下面提供的工作示例

$c = $modx->newQuery('modResource');
$c->where('LENGTH(pagetitle) > 0');
$c->select('pagetitle');
$c->prepare();
print_r($c->toSql());

返回以下(工作)SQL:

SELECT `pagetitle` 
FROM `ovo_site_content` 
AS `modResource` 
WHERE LENGTH(pagetitle) > 0

它有效。

关于mysql - 如何将 SQL where LENGTH() 条件转换为 xPDO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26692290/

相关文章:

php - My SQL 按 2 个字段排序,每次更改一个字段

mysql - 数据库异常 - 一般错误 : 1021 Disk full

mysql - 输入价格

php - 在 ModX Revo 中运行自定义数据库查询

php - MODX Revo getCollection 的自定义排序顺序

mysql - 无法在 nix mysql CLI 中更改 mysql 密码

php - 将 modx 站点从子文件夹移动到根文件夹

javascript - 点击页面跳转后网站重定向至首页

php - 从数据库收集统计数据

php - MODX 空仪表板