Tohle Ti vyhodí řádky, u kterých není sloupec prasárna stejný jako sloučené předchozí (bez ID) pomocí mezery .
Struktura asi není přesně stejná jako ta tvá, ale upravit to na tvou strukturu by mělo být jednoduché .
Kód:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`znacka` varchar(100) DEFAULT NULL,
`model1` varchar(100) DEFAULT NULL,
`model2` varchar(100) DEFAULT NULL,
`model3` varchar(100) DEFAULT NULL,
`prasarna` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO test VALUES ('', 'Volkswagen', 'Bora', 'Passat', 'Golf', 'Volkswagen Bora Golf Passat');
INSERT INTO test VALUES ('', 'Skoda', 'Fabia', 'Octavia', 'Superb', 'Skoda Fabia Octavia Superb');
SET @nazvy_sloupcu = (SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'test' AND column_name <> 'id' AND column_name <> 'prasarna');
SET @sql_porovnani = CONCAT('SELECT id, CONCAT_WS(" ", ', @nazvy_sloupcu, ') as sloucene, prasarna FROM test HAVING sloucene <> prasarna');
PREPARE porovnani_stmt FROM @sql_porovnani;
EXECUTE porovnani_stmt;
pak si na konci (jinak neuvidíš výsledek) ještě zavolej
Kód:
DEALLOCATE PREPARE porovnani_stmt;
DROP TABLE test;
EDIT: na testovací data, která nedávají smysl, nehleď a doufám že jsem správně pochopil zadání