1

想象一下 MySQL 中的这个 select 语句:

SELECT table1.place, table2.person FROM table1, table2

如果数据库中的“place”或“person”为空(NULL 或者如果它被错误地输入为长度为零的空字符串),我希望它null在我将它放入 PHP 数组后插入到该变量中......而不是,它显示为string of length zero

第一个问题是,为什么会发生这种情况?

第二个问题是,作为修复,如果 DB 字段是长度为零或 null 的字符串,我想给它分配一个字符串 - 这样我们就获得了问题的所有权......

这里最好的解决方法是什么?

更新

补充一点,这里的重点是让它在 Smarty 中使用。使用 Smarty,isset() 在长度为零的字符串上评估“true”,并且即使对于这些变量中的 NULL,它似乎也评估为 true,所以这可能是一个更聪明的问题?

4

1 回答 1

3

你可以使用NULLIF

SELECT
    NULLIF(table1.place, '') AS place,
    NULLIF(table2.person, '') AS person
FROM table1, table2
于 2012-07-21T18:23:32.887 回答