从一列mysql中读取多个值

时间:2015-10-18 17:37:40

标签: php mysql string hash

我有一个像这样的

的Mysql数据库列
+----------------------------+
|PhoneNumber                 |
+----------------------------+
|0378617186#0381716116#      |
+----------------------------+

因此我想将该单个值提取为不同的值。每个电话号码值以hash (#)分隔。

我把它用于我的PHP登录功能的需要..有些人的电话号码超过1,所以基于我的问题......那个人可以使用第一个号码(0378617186)或第二个号码(0381716116)登录),所以我需要PHP将hash (#)符号执行到OR函数。

任何形式的帮助都会对我有所帮助...... 感谢

1 个答案:

答案 0 :(得分:1)

如果您确实强制要保留此数据库架构,那么您可以使用以下查询将PhoneNumber列转换为最多10行(您可以相应地调整它,也可以将t1表名更改为您当前使用的表名) :

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t1.PhoneNumber, '#', numbers.n), '#', -1) name
FROM (
    SELECT 1 n 
    UNION ALL SELECT 2
    UNION ALL SELECT 3 
    UNION ALL SELECT 4
    UNION ALL SELECT 5
    UNION ALL SELECT 6
    UNION ALL SELECT 7
    UNION ALL SELECT 8
    UNION ALL SELECT 9
    UNION ALL SELECT 10
) numbers 
INNER JOIN t1
ON CHAR_LENGTH(t1.PhoneNumber) - CHAR_LENGTH(REPLACE(t1.PhoneNumber, '#', '')) >= numbers.n - 1
ORDER BY PhoneNumber, n;