Mailinglisten-Archive |
Kristian Köhntopp schrieb am Donnerstag, den 2. September 1999: > Ich habe das Problem gelöst, aber die Lösung ist dreckig. Während > ich in einer weiteren Mail jetzt die Lösung erkläre (was einige Zeit > dauern wird), könnt Ihr ja mal versuchen, diese Aufgabe alleine zu > knacken. Das ist sehr instruktiv. Mein Vorschlag: SELECT ip, (( FLOOR(ip)*256 +FLOOR(SUBSTRING_INDEX(ip,'.',-3)) ) *256 +FLOOR(SUBSTRING_INDEX(ip,'.',-2)) )*256 +FLOOR(SUBSTRING_INDEX(ip,'.',-1)) AS ipnum FROM iptest ORDER BY ipnum; Das spielt also damit, daß der String '1.2.3' im numerischen Kontext einfach als die Zahl 1.2 interpretiert wird. Sauberer wär's, die Textteile hinter dem Komma immer noch wegzulassen - aber dann wird's noch monströser: SELECT ip, (( SUBSTRING_INDEX(ip,'.',1) *256 +SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',-3),'.',1) ) *256 +SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',-2),'.',1) )*256 +SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',-1),'.',1) AS ipnum FROM iptest ORDER BY ipnum; Bin auf KKs Lösung gespannt. Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ > PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7
php::bar PHP Wiki - Listenarchive