我想添加一个临时列来查询。
我有一个表“example_ip_db”,包含“s1,s2,s3,s4,e1,e2,e3,e4,cc”
ip范围的示例条目[1.1.1.1< - > 2.2.2.2]国家“CN” “s1,s2,s3,s4 = 1”和“e1,e2,e3,e4 = 2”s1.s2.s3.s4 - < s1,s2,s3,s4 = 1“。 e1.e2.e3.e4。
我想在非“example_ip_db”表中添加“county”列。 像“count(*)as'amount'”这样的列。
我怎样才能拆分ip呢?喜欢php> IP [0],IP [1],IP [1],IP [3]
答案 0 :(得分:0)
您在mysql中使用SUBSTRING()函数。
例如。
mysql> SELECT SUBSTRING('habonytest', -3);
-> est
mysql> SELECT SUBSTRING('habonytest', -5, 2);
-> yt
mysql> SELECT SUBSTRING('habonytest', FROM -5 FOR 4);
-> ytes
mysql也有SUBSTRING_INDEX()函数。
示例:
mysql> SELECT SUBSTRING_INDEX('myid@domain.com', '@', -1);
-> domain.com
mysql> SELECT SUBSTRING_INDEX('myid@domain.com', '@', 1);
-> myid
答案 1 :(得分:0)
谢谢! (Star_Man)
解决:
SELECT IP, SUBSTRING_INDEX( IP, '.', 1 ) AS part1,
SUBSTRING_INDEX( SUBSTRING_INDEX( IP, '.', 2 ) , '.' , -1 ) AS part2,
SUBSTRING_INDEX( SUBSTRING_INDEX( IP, '.' , -2 ) , '.', 1 ) AS part3,
SUBSTRING_INDEX( IP, '.' , -1 ) AS part4,
(SELECT `cc`
FROM `example_ip_db`
WHERE `s1` <= part1
AND `e1` >= part1
AND `s2` <= part2
AND `e2` >= part2
AND `s3` <= part3
AND `e3` >= part3
AND `s4` <= part4
AND `e4` >= part4
) AS CC
FROM `example_saved_ip_from`
WHERE 1