2016-05-10 7 views
1

Ich habe die Struktur folgende Tabelle:Wie Zeilen auszuwählen Klausel IN und zerofill Feld in MySQL

CREATE TABLE `ss_highlight_ids` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `highlight_id` int(10) unsigned zerofill NOT NULL DEFAULT '0000000000', 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `highlight_id_UNIQUE` (`highlight_id`), 
    KEY `highlight_id_INDEX` (`highlight_id`) COMMENT '' 
) ENGINE=InnoDB AUTO_INCREMENT=13580 DEFAULT CHARSET=latin1 

und Ich mag die IDs einer anderen Tabelle verwenden, um alle Zeilen auszuwählen, die gleiche ID in den ss_highlight_ids mit . highlight_id.

Die Abfrage ich die Zeilen auszuwählen verwenden ist folgende:

SELECT 
    * 
FROM 
    `ss_highlight_ids` AS `hi` 
WHERE 
    `hi`.`highlight_id` IN(
     SELECT 
      LPAD(`p`.`ID`, 10, '0') AS `ID` 
     FROM 
      ss_posts AS `p` 
     WHERE 
      `p`.`post_type` = 'football-highlights' 
      AND `p`.`post_date` > DATE_SUB(NOW(), INTERVAL 1 DAY) 
    ) 

aber leider nichts zurückliefert. Die Frage ist also, ob ich etwas falsch mache oder etwas anderes machen soll.

Bitte beachten Sie, dass ich Daten in meiner DB im Zusammenhang habe, und ich habe statt IN versuchen = mit einem einzigen ID Wert zu bedienen und funktioniert, aber mit der IN Klausel nicht funktioniert.

Antwort

1

Sie sollten die lpad auch für zerofill Spalte verwenden, weil ich die Null-Füllung denken ist nur verwenden für die Darstellung aber nicht für vielfältigste Auswertesysteme

SELECT * 
FROM `ss_highlight_ids` AS `hi` 
WHERE 
lpad(`hi`.`highlight_id`, 10 , '0') IN(
    SELECT LPAD(`p`.`ID`, 10, '0') 
    FROM ss_posts AS `p` 
    WHERE `p`.`post_type` = 'football-highlights' 
    AND `p`.`post_date` > DATE_SUB(NOW(), INTERVAL 1 DAY) 
) 
+0

Es scheint, wie nicht funktionieren :(Ich habe es versucht und immer noch nicht funktioniert: ( –

+0

dann versuchen Sie, das Ergebnis aus dem subselect erhalten und prüfen, ob es richtige Daten sind .. und versuchen, den Alias ​​zu sub select zu remutieren .. ich habe die Antwort aktualisieren – scaisEdge

+0

Ich habe es bereits versucht ... –

Verwandte Themen