我有 sql select,我需要对 status_bid 字段使用一些函数?像这样:
SELECT
`N`.`_id` as `_id`,
`N`.`created_at` as `created_at`,
CASE
WHEN `N`.`status_bid` = 1 THEN "'.$this->getBidStatusString(1).'"
WHEN `N`.`status_bid` = 2 THEN "'.$this->getBidStatusString(2).'"
WHEN `N`.`status_bid` = 3 THEN "'.$this->getBidStatusString(3).'"
WHEN `N`.`status_bid` = 4 THEN "'.$this->getBidStatusString(4).'"
WHEN `N`.`status_bid` = 5 THEN "'.$this->getBidStatusString(5).'"
WHEN `N`.`status_bid` = 6 THEN "'.$this->getBidStatusString(6).'"
WHEN `N`.`status_bid` = 10 THEN "'.$this->getBidStatusString(10).'"
WHEN `N`.`status_bid` = 11 THEN "'.$this->getBidStatusString(11).'"
ELSE "0"
END as `status_bid`,
..........
..........
但是CASE WHEN ELSE END
对我来说并不漂亮。怎么改成这样
if (`N`.`status_bid` IS NOT NULL) {
'".$this->getBidStatusString(`N`.`status_bid`).'" as `status_bid`
}
我有php函数
/**
* @return string
*/
public function getBidStatusString($id)
{
if (array_key_exists($id, Bit::getBidStatusSerialized())) {
return Bit::getBidStatusSerialized()[$id];
}
}
这在sql中可能吗?
最佳答案
不要在 SQL 中执行此操作。从 mysql 获取数据后迭代您的数据。或者,也许您可以在需要时调用 getBidStatusString。例如
<span><?=Bit::getBidStatusSerialized()[$data['id']]?>
关于php - sql select如何调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39345439/