Probleme mit NOT LIKE

Moin Moin Forum,

ich habe ein Problem mit meiner Mysql Abfrage !

SELECT * FROM auft_whg
WHERE ausf_firma = 'TIP'
AND hw_status_fertig NOT LIKE 'Abgeschlossen'
AND sb_status = 'JA'
AND hw_status = 'Angenommen'

Normaler weise müssten Daten aus der DB ausgelesen werden. Kommt aber ein leeres ergebniss raus.

Danke im voraus !

Alex
 
Da wir nicht raten können, wie die Daten (insbesondere in der Spalte hw_status_fertig) aussehen, können wir dir nicht viel helfen.

Wieso benutzt du denn überhaupt LIKE? Es würde doch ein ungleich tun.

SQL:
SELECT * FROM auft_whg
WHERE ausf_firma = 'TIP'
AND hw_status_fertig <> 'Abgeschlossen'
AND sb_status = 'JA'
AND hw_status = 'Angenommen'
 
Hier einmal ein teildump der tabelle !

PHP:
CREATE TABLE IF NOT EXISTS `auft_whg` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `datum` varchar(50) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `eigentuemer_cb` varchar(255) COLLATE latin1_german2_ci DEFAULT NULL,
  `weg` varchar(255) COLLATE latin1_german2_ci DEFAULT NULL,
  `eigentuemer` varchar(200) COLLATE latin1_german2_ci DEFAULT NULL,
  `gem_eigentum` varchar(99) COLLATE latin1_german2_ci DEFAULT NULL,
  `sond_eigentum` char(1) COLLATE latin1_german2_ci DEFAULT NULL,
  `verw_einheit` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `whg_nr` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `mieter` varchar(255) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `tel` varchar(250) COLLATE latin1_german2_ci DEFAULT NULL,
  `ort` varchar(250) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `str` varchar(250) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `instandhaltung` char(1) COLLATE latin1_german2_ci DEFAULT NULL,
  `versicherungsschden` char(1) COLLATE latin1_german2_ci DEFAULT NULL,
  `schadensnr` varchar(250) COLLATE latin1_german2_ci DEFAULT NULL,
  `vom_datum` varchar(200) COLLATE latin1_german2_ci DEFAULT NULL,
  `pruef` char(1) COLLATE latin1_german2_ci DEFAULT NULL,
  `sk_gew` varchar(250) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `ausf_firma` varchar(250) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `kred_nr` varchar(250) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `kosten` int(11) NOT NULL DEFAULT '0',
  `tel_beauftr_ja` char(1) COLLATE latin1_german2_ci DEFAULT NULL,
  `tel_beauftr_nein` char(1) COLLATE latin1_german2_ci DEFAULT NULL,
  `arbeiten` text COLLATE latin1_german2_ci NOT NULL,
  `genehmigt` varchar(250) COLLATE latin1_german2_ci DEFAULT NULL,
  `unterschr` varchar(250) COLLATE latin1_german2_ci DEFAULT NULL,
  `hausmeister` varchar(200) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `hausmeister_tel` varchar(200) COLLATE latin1_german2_ci NOT NULL DEFAULT '',
  `sb_status` varchar(10) COLLATE latin1_german2_ci NOT NULL,
  `sb_status_time` varchar(30) COLLATE latin1_german2_ci NOT NULL,
  `hw_status` varchar(255) COLLATE latin1_german2_ci NOT NULL,
  `hw_status_time` varchar(255) COLLATE latin1_german2_ci DEFAULT NULL,
  `hw_status_fertig` varchar(255) COLLATE latin1_german2_ci DEFAULT NULL,
  `hw_status_fertig_time` varchar(255) COLLATE latin1_german2_ci NOT NULL,
  `hm_auft_abg` varchar(255) COLLATE latin1_german2_ci NOT NULL,
  `hm_auft_abg_time` varchar(255) COLLATE latin1_german2_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=29 ;

--
-- Daten für Tabelle `auft_whg`
--

INSERT INTO `auft_whg` (`id`, `datum`, `eigentuemer_cb`, `weg`, `eigentuemer`, `gem_eigentum`, `sond_eigentum`, `verw_einheit`, `whg_nr`, `mieter`, `tel`, `ort`, `str`, `instandhaltung`, `versicherungsschden`, `schadensnr`, `vom_datum`, `pruef`, `sk_gew`, `ausf_firma`, `kred_nr`, `kosten`, `tel_beauftr_ja`, `tel_beauftr_nein`, `arbeiten`, `genehmigt`, `unterschr`, `hausmeister`, `hausmeister_tel`, `sb_status`, `sb_status_time`, `hw_status`, `hw_status_time`, `hw_status_fertig`, `hw_status_fertig_time`, `hm_auft_abg`, `hm_auft_abg_time`) VALUES
(20, '25.03.2009 ', ' ', ' ', 'LB Immo Invest', ' ', NULL, '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', NULL, NULL, NULL, NULL, NULL, '8301', 'Schleusner', '1361', 126, 'X', NULL, '213213213232132132 1321 321 32 13 21 321 321 3 21 321 321 32 13 21 321', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '20.04.2009 ', '', NULL, NULL, '', '', ''),
(19, '25.03.2009 ', ' ', ' ', 'LB Immo Invest', ' ', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', '', '', NULL, NULL, '', '8301', 'TIP', '624', 128, 'X', '', 'ghfghfghfghfghfghfhfghfghfghf', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '', '', NULL, NULL, '', '', ''),
(5, '12.03.2009 ', 'X', ' ', 'LB Immo Invest', 'x', NULL, '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', 'X', NULL, NULL, NULL, 'X', '8301', 'TIP', '624', 10000, 'X', NULL, '321351320135136321321222222222222222', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '20.03.2009 ', 'Angenommen', '04.03.2011 ', NULL, '', '', ''),
(10, '13.03.2009 ', 'X', ' ', 'LB Immo Invest', ' ', 'x', '101723', '1', 'STEFFEN EDELTRAUT E.', NULL, 'D - XXXXX Musterstadt', 'Veilchenweg 12', 'X', '', NULL, NULL, 'X', '8301', 'TIP', '624', 521, 'X', '', 'TEST', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '0', '', NULL, NULL, '', '', ''),
(11, '13.03.2009 ', 'X', ' ', 'LB Immo Invest', ' ', 'x', '101722', '23', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Steinbecker Str. 29', 'X', '', NULL, NULL, 'X', '8301', 'TIP', '624', 555, '', '', 'rtzuiopü', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '0', '', NULL, NULL, '', '', ''),
(12, '13.03.2009 ', 'X', ' ', 'LB Immo Invest', ' ', 'x', '101722', '23', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Steinbecker Str. 29', 'X', '', NULL, NULL, 'X', '8301', 'TIP', '624', 666, '', 'X', '1111111222222222222223333333333333334444444444445555555555', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '0', '', NULL, NULL, '', '', ''),
(13, '13.03.2009 ', 'X', ' ', 'LB Immo Invest', 'x', NULL, '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', 'X', NULL, NULL, NULL, 'X', '8301', 'T+T Markt', '218', 2, 'X', NULL, '2', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '22.03.2009 ', '', NULL, NULL, '', '', ''),
(16, '13.03.2009 ', ' ', ' ', 'LB Immo Invest', ' ', NULL, '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', NULL, NULL, NULL, NULL, NULL, '8301', 'TIP', '624', 10000, NULL, NULL, 'jh', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '22.03.2009 ', 'NULL', NULL, NULL, '', '', ''),
(17, '13.03.2009 ', ' ', ' ', 'LB Immo Invest', ' ', NULL, '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', NULL, NULL, NULL, NULL, NULL, '8301', 'TIP', '624', 2, NULL, NULL, 'cfgfgfdgdgd', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '22.03.2009 ', 'NULL', NULL, NULL, '', '', ''),
(18, '13.03.2009 ', ' ', ' ', 'LB Immo Invest', ' ', NULL, '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', NULL, NULL, NULL, NULL, NULL, '8301', 'TIP', '624', 1000, 'x', NULL, 'xdfvgdfgdfgdfgdfgdfgdfg', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '22.03.2009 ', 'NULL', NULL, NULL, '', '', ''),
(21, '13.01.2011 ', ' ', ' ', 'LB Immo Invest', ' ', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', '', '', NULL, NULL, '', '807300', 'TIP', '624', 146789, '', '', 'fdsdsfsdfdsfdsfsdfdsfsdfsdfdsfsdfdsfsdfs', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '', '', NULL, NULL, '', '', ''),
(22, '14.01.2011 ', 'X', ' ', 'LB Immo Invest', 'x', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', 'X', '', '0815', '01.01.2011', '', '807300', 'TIP', '624', 1000, '', 'X', 'uiuiouiou', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '', '', NULL, NULL, '', '', ''),
(23, '14.01.2011 ', 'X', ' ', 'LB Immo Invest', 'x', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', 'X', '', '0815', '01.01.2011', '', '807300', 'TIP', '624', 1000, '', 'X', 'uiuiouiou', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '', '', NULL, NULL, '', '', ''),
(24, '03.03.2011 ', ' ', ' ', 'LB Immo Invest', ' ', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', 'X', '', NULL, NULL, '', '807300', 'TIP', '624', 100, '', '', 'LOLL LABER\r\n', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '03.03.2011 ', 'Angenommen', '03.03.2011 ', 'Abgeschlossen', '03.03.2011 ', '', ''),
(26, '04.03.2011 ', ' ', ' ', 'LB Immo Invest', ' ', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', 'X', '', NULL, NULL, '', '807300', 'TIP', '624', 100, '', '', 'TÜR DEFEKT ', 'JA', 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', 'JA', '', 'Angenommen', '04.03.2011 ', 'Abgeschlossen', '08.03.2011 ', '', ''),
(28, '09.03.2011 ', ' ', ' ', 'LB Immo Invest', ' ', '', '101721', '1', 'Max Mustermann ', NULL, 'D - XXXXX Musterstadt', 'Brandenburger Str. 44', '', '', NULL, NULL, '', '807300', 'TIP', '624', 455, '', '', 'NIX NEUES', NULL, 'Alexander Ruff', 'Musterfirma', '+ 49 0152 290 297 47', '', '', '', NULL, NULL, '', '', '');

Ich bekomme einfach keine brauchbaren Daten heraus !
 
Ich tippe mal es liegt daran, dass du NULL Werte für hw_status_fertig zulässt. String-Vergleiche mit NULL führen zum Wahrheitswert "NULL" (dreiwertige Logik), welcher zu FALSE ausgewertet wird.

Also müsstest du die Abfrage so abändern

SQL:
SELECT * FROM auft_whg
WHERE ausf_firma = 'TIP'
AND (hw_status_fertig NOT LIKE 'Abgeschlossen' OR hw_status_fertig IS NULL)
AND sb_status = 'JA'
AND hw_status = 'Angenommen'

/*oder ohne LIKE*/

SELECT * FROM auft_whg
WHERE ausf_firma = 'TIP'
AND (hw_status_fertig <> 'Abgeschlossen' OR hw_status_fertig IS NULL)
AND sb_status = 'JA'
AND hw_status = 'Angenommen'

Edit: Du kannst ja mal diese Anfragen starten. Vom Gefühlt her würde ich beides mal FALSE (0) erwarten, aber das Ergebnis ist NULL

SQL:
SELECT NULL <> 'foo';
SELECT NULL = 'foo';

Selbst diese beiden Abfragen ergeben NULL, denn "1 AND <irgendwas>" ist <irgendwas>.

SQL:
SELECT (NULL <> 'foo' AND 1);
SELECT (NULL = 'foo' AND 1);

Aber "0 AND <irgendwas>" ist 0

SQL:
SELECT (NULL <> 'foo' AND 0);
SELECT (NULL = 'foo' AND 0);
 
Zuletzt bearbeitet:
Zurück