René: Falsche Abfrage - bekomme nicht das gewünschte Ergebnis

Hallo,
Ich steige hier gerade nicht durch. MySQL macht gerade nicht, was ich will:
Starte ich die folgende Abfrage:

SELECT *  
FROM le_adress  
WHERE ad_zip = '49124'  
AND ad_town = 'Georgsmarienhütte'  
AND ad_street = 'Wellendorfer Str'  
AND ad_range_start <= '146'  
AND ad_range_end >= '146'  
AND ad_range_type = 'P'

für die folgende Tabelle:
ad_id ad_sort_type ad_zip ad_town ad_street ad_range_start ad_range_end ad_range_type ad_route_id ad_district_info ad_town_info ad_street_info
60380 4 49124 Georgsmarienhütte Wellendorfer Str 1 9 P 1028452677 U-19 49124F
60370 4 49124 Georgsmarienhütte Wellendorfer Str 1 9 D 1028452677 U-19 49124F
60371 4 49124 Georgsmarienhütte Wellendorfer Str 10 18 D 826635007 U-15 49124E
60372 4 49124 Georgsmarienhütte Wellendorfer Str 19 63 D 1308897270 H-06A 220069
60373 4 49124 Georgsmarienhütte Wellendorfer Str 71 131 D 1323982549 H-02 220066
60374 4 49124 Georgsmarienhütte Wellendorfer Str 133 158 D 1323982549 H-02 220066
60375 4 49124 Georgsmarienhütte Wellendorfer Str 164 196 D 1323902521 H-05 220068
60376 4 49124 Georgsmarienhütte Wellendorfer Str 197 200 D 1323902521 H-05 220068
60377 4 49124 Georgsmarienhütte Wellendorfer Str 202 206 D 1323902521 H-05 220068
60378 4 49124 Georgsmarienhütte Wellendorfer Str 207 207 D 1323982549 H-02 220066
60379 4 49124 Georgsmarienhütte Wellendorfer Str 210 222 D 1328944285 H-04 220067
60380 4 49124 Georgsmarienhütte Wellendorfer Str 1 9 P 1028452677 U-19 49124F
60381 4 49124 Georgsmarienhütte Wellendorfer Str 10 18 P 826635007 U-15 49124E
60382 4 49124 Georgsmarienhütte Wellendorfer Str 19 63 P 1308897270 H-06A 220069
60383 4 49124 Georgsmarienhütte Wellendorfer Str 71 131 P 1323982549 H-02 220066
60384 4 49124 Georgsmarienhütte Wellendorfer Str 133 158 P 1323982549 H-02 220066
60385 4 49124 Georgsmarienhütte Wellendorfer Str 164 196 P 1323902521 H-05 220068

bekomme ich als Ergebnis:

60380 4 49124 Georgsmarienhütte Wellendorfer Str 1 9 P 1028452677 U-19 49124F
60381 4 49124 Georgsmarienhütte Wellendorfer Str 10 18 P 826635007 U-15 49124E
60384 4 49124 Georgsmarienhütte Wellendorfer Str 133 158 P 1323982549 H-02 220066

Eigentlich dürfte ich nur den letzten Eintrag bekommen, oder? Was mache ich falsch? Danke für die Hilfe.

René

Anbei noch einmal der Dump, falls jemand testen möchte:

CREATE TABLE IF NOT EXISTS `le_adress` (  
  `ad_id` int(11) NOT NULL auto_increment,  
  `ad_sort_type` char(1) default NULL,  
  `ad_zip` char(5) default NULL,  
  `ad_town` varchar(254) default NULL,  
  `ad_street` varchar(254) default NULL,  
  `ad_range_start` char(5) default NULL,  
  `ad_range_end` char(5) default NULL,  
  `ad_range_type` char(1) default NULL,  
  `ad_route_id` char(11) default NULL,  
  `ad_district_info` varchar(254) default NULL,  
  `ad_town_info` char(15) default NULL,  
  `ad_street_info` char(15) default NULL,  
  PRIMARY KEY  (`ad_id`),  
  KEY `ad_zip` (`ad_zip`),  
  KEY `ad_town` (`ad_town`),  
  KEY `ad_street` (`ad_street`)  
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=121723 ;  
  
--  
-- Daten für Tabelle `le_adress`  
--  
  
INSERT INTO `le_adress` (`ad_id`, `ad_sort_type`, `ad_zip`, `ad_town`, `ad_street`, `ad_range_start`, `ad_range_end`, `ad_range_type`, `ad_route_id`, `ad_district_info`, `ad_town_info`, `ad_street_info`) VALUES  
(60370, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '1', '9', 'D', '01028452677', 'U-19', '49124F', ''),  
(60371, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '10', '18', 'D', '00826635007', 'U-15', '49124E', ''),  
(60372, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '19', '63', 'D', '01308897270', 'H-06A', '220069', ''),  
(60373, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '71', '131', 'D', '01323982549', 'H-02', '220066', ''),  
(60374, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '133', '158', 'D', '01323982549', 'H-02', '220066', ''),  
(60375, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '164', '196', 'D', '01323902521', 'H-05', '220068', ''),  
(60376, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '197', '200', 'D', '01323902521', 'H-05', '220068', ''),  
(60377, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '202', '206', 'D', '01323902521', 'H-05', '220068', ''),  
(60378, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '207', '207', 'D', '01323982549', 'H-02', '220066', ''),  
(60379, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '210', '222', 'D', '01328944285', 'H-04', '220067', ''),  
(60380, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '1', '9', 'P', '01028452677', 'U-19', '49124F', ''),  
(60381, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '10', '18', 'P', '00826635007', 'U-15', '49124E', ''),  
(60382, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '19', '63', 'P', '01308897270', 'H-06A', '220069', ''),  
(60383, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '71', '131', 'P', '01323982549', 'H-02', '220066', ''),  
(60384, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '133', '158', 'P', '01323982549', 'H-02', '220066', ''),  
(60385, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '164', '196', 'P', '01323902521', 'H-05', '220068', ''),  
(60386, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '197', '200', 'P', '01323902521', 'H-05', '220068', ''),  
(60387, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '202', '206', 'P', '01323902521', 'H-05', '220068', ''),  
(60388, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '210', '222', 'P', '01328944285', 'H-04', '220067', ''),  
(60446, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '64', '70', 'D', '00115892043', 'EXTERN', '', ''),  
(60447, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '159', '163', 'D', '00115892043', 'EXTERN', '', ''),  
(60448, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '201', '201', 'D', '00115892043', 'EXTERN', '', ''),  
(60449, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '208', '209', 'D', '00115892043', 'EXTERN', '', ''),  
(60450, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '223', '1000', 'D', '00115892043', 'EXTERN', '', ''),  
(60451, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '64', '70', 'P', '00115892043', 'EXTERN', '', ''),  
(60452, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '132', '132', 'P', '00115892043', 'EXTERN', '', ''),  
(60453, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '159', '163', 'P', '00115892043', 'EXTERN', '', ''),  
(60454, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '208', '209', 'P', '00115892043', 'EXTERN', '', ''),  
(60455, '4', '49124', 'Georgsmarienhütte', 'Wellendorfer Str', '223', '1000', 'P', '00115892043', 'EXTERN', '', '');
  1. Hello,

    ad\_range\_start char(5) default NULL,
      ad\_range\_end char(5) default NULL,

    die beiden sind dein Problem - das Character-Feld vergleicht auf Zeichenebene, nicht numerisch wie du es erwartest. Ändere deinen Spaltentyp oder ändere deinen Vergleich durch hinzufügen eines expliziten CAST nach Integer.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Don't lick your wounds: celebrate them. The scars you bear are the signs of a competitor.  --  character Richard Webber on Grey's Anatomy: 'Where the wild things are'
    1. Hallo Rouven,
      das war es! Habe ich echt nicht drüber nachgedacht. Danke! War schon am verzweifeln.

      Schönen Tag noch!