Zend DB v1 中的 SUBSTR
SUBSTR inside a where with Zend DB v1
我正在使用 Zend DB (v1) 进行查询,但我找不到在查询中包含 SUBSTR 语句的方法,因为有多个参数。
这就是我想要实现的:
SELECT *
FROM myTable
WHERE SUBSTR(myField, myVar1, myVar2) = 'xxx'
我需要使用 Zend DB 标准格式,但 where 似乎不接受多个参数,而我需要将 myField、myVar1、myVar2 作为 PHP 变量传递($myField、$myVar1、$我的变量 2)。 'xxx'在这里不是变量,是固定值。
$sql = $this->select()
->from(["t1" => "myTable"]])
->where( ... ); // Not sure how to implement this
有人知道如何实现吗?
好的,就写吧!
$sql = $this->select()
->from(["t1" => "myTable"]])
->where("SUBSTR(myField, myVar1, myVar2) = ?", 'XXX')
经过一些尝试和错误后,我发现这个解决方法似乎有效:
$myFieldQuoted = $this->_db->quote($myField);
$myVar1Quoted = $this->_db->quote($myVar1);
$myVar2Quoted = $this->_db->quote($myVar2);
$sql = $this->select()
->from(["t1" => "myTable"]])
->where("SUBSTR($myFieldQuoted, $myVar1Quoted, $myVar2Quoted) = 'xxx'");
我正在使用 Zend DB (v1) 进行查询,但我找不到在查询中包含 SUBSTR 语句的方法,因为有多个参数。
这就是我想要实现的:
SELECT *
FROM myTable
WHERE SUBSTR(myField, myVar1, myVar2) = 'xxx'
我需要使用 Zend DB 标准格式,但 where 似乎不接受多个参数,而我需要将 myField、myVar1、myVar2 作为 PHP 变量传递($myField、$myVar1、$我的变量 2)。 'xxx'在这里不是变量,是固定值。
$sql = $this->select()
->from(["t1" => "myTable"]])
->where( ... ); // Not sure how to implement this
有人知道如何实现吗?
好的,就写吧!
$sql = $this->select()
->from(["t1" => "myTable"]])
->where("SUBSTR(myField, myVar1, myVar2) = ?", 'XXX')
经过一些尝试和错误后,我发现这个解决方法似乎有效:
$myFieldQuoted = $this->_db->quote($myField);
$myVar1Quoted = $this->_db->quote($myVar1);
$myVar2Quoted = $this->_db->quote($myVar2);
$sql = $this->select()
->from(["t1" => "myTable"]])
->where("SUBSTR($myFieldQuoted, $myVar1Quoted, $myVar2Quoted) = 'xxx'");