2016-06-29 9 views
-2

Guten Tag, ich habe Probleme mit dieser Befehlszeile:MySQL etwas falsch

INSERT INTO oc_idai (name, language_id) 
SELECT 
    name, language_id 
FROM 
    oc_product_description 
WHERE 
    (
     name LIKE '%0%' 
     OR name LIKE '%1%' 
     OR name LIKE '%2%' 
     OR name LIKE '%3%' 
     OR name LIKE '%4%' 
     OR name LIKE '%5%' 
     OR name LIKE '%6%' 
     OR name LIKE '%7%' 
     OR name LIKE '%8%' 
     OR name LIKE '%9%' 
     AND language_id = '5' 
    ) 

Dieser Code funktioniert nicht. Es gibt 2 Felder wie Name und language_id. Ohne eines dieser Felder Befehl funktioniert perfekt:

INSERT INTO oc_idai (name) 
SELECT 
    name 
FROM 
    oc_product_description 
WHERE 
    (
     name LIKE '%0%' 
     OR name LIKE '%1%' 
     OR name LIKE '%2%' 
     OR name LIKE '%3%' 
     OR name LIKE '%4%' 
     OR name LIKE '%5%' 
     OR name LIKE '%6%' 
     OR name LIKE '%7%' 
     OR name LIKE '%8%' 
     OR name LIKE '%9%' 
    ) 

Dank

+0

Hinzufügen von Fehlern Nachrichten zu Ihrem Post für den Code, der nicht funktioniert, wäre nützlich. –

+0

Wie funktioniert es nicht? Error? Wird nicht eingefügt? Fügt falsche Daten ein? – Ray

Antwort

0

Ohne zusätzliche Informationen über die genaue Art von ‚nicht funktioniert‘, ich bin Ihr Problem zu erraten ist Ihr wo bedingt ist durcheinander. Sie wollen alles mit einem Namen eines der Wildcard-Strings passenden und language_id = 5

ändern Sie es an:

WHERE 
(
    (name LIKE '%0%' 
    OR name LIKE '%1%' 
    OR name LIKE '%2%' 
    OR name LIKE '%3%' 
    OR name LIKE '%4%' 
    OR name LIKE '%5%' 
    OR name LIKE '%6%' 
    OR name LIKE '%7%' 
    OR name LIKE '%8%' 
    OR name LIKE '%9%') 
    AND language_id = '5' 
) 
0

Neben Rays hilfreich Beobachtung, dass Ihre or Aussagen sollten zusammen gruppiert werden - sind Ihre oc_idai Tabelle tatsächlich ein language_id Feld haben? In der "Arbeits" -Abfrage wird das Sprachfeld nicht angegeben, was bedeutet, dass es entweder null oder eine schemafähige Standardeinstellung ist. Ein Versuch, insert in ein Feld, das nicht existiert, zu versuchen, ist ein sicherer Weg, um einen Fehler zu bekommen.

Es würde helfen, wenn Sie eine Geige zusammenstellen. Ohne Ihr Schema zu sehen, können wir nur Vermutungen anstellen. Hier ist eine funktionierende Version der schema und query: http://sqlfiddle.com/#!9/d6414/1 Vergleichen Sie es mit Ihren eigenen, um zu sehen, wo Sie möglicherweise schief gehen.