【发布时间】:2012-03-23 04:10:50
【问题描述】:
我有一个 mySql 数据库,在我的一个查询中,我使用 GROUP_CONCAT 函数从单个行中获取值,作为用逗号分隔的字符串。最初,查询返回 BLOB,正如有人在另一个问题中建议的那样,我将 GROUP_CONCAT 更改为 GROUP_CONCAT(DISTINCT CONVERT(classes.type, CHAR(2)))。到目前为止,一切都很好。查询有效,我可以在 phpMyAdmin 中看到结果集中用逗号分隔的值。 GROUP_CONCAT 中使用的 call.type 字段只能有“1”或“2”作为值。所以结果类似于“1” - “1,2” - “2” - “1,2”(破折号在此处分隔结果)等。 问题是我无法使用 php 专门读取字符“2”。我已经尝试了一切,strpos,in_array(使用explode之后)。例如 strpos 在我使用 strpos($result,"1") 时返回字符的位置,但在我使用 strpos($result,"2") 时总是返回 0。 有任何想法吗?? 谢谢
【问题讨论】:
-
你试过逐字符打印字符串吗?
CONVERTed 字符串的编码是什么?喜欢for($i=...) var_dump($result[$i]); -
查询的第一个结果是“2,1”,正如我在 phpMyAdmin 中看到的那样。 var_dump($result) 返回 string(3) "2,1" 而 var_dump($result) with for 返回 string(1) "2" string(1) "," string(1) "1" 以获得相同的结果。编码为 UTF-8
-
顺便说一句,当我逐字符读取结果时,if($result[$i] == 2) 有效