2016-06-12 2 views
-1

kann jemand helfen, ich brauche alle Werte aus Feldern, wo alle Felder Werte wie% someString%. Meine Tabelle hat 17 Felder, ich möchte nicht alle Felder in der Abfrage schreiben. DB Mysql.Wählen Sie alle Felder Wert, wo alle fileds Wert wie einige String

select * from Deputes_APPEAL where filePath, checkForPlagiarism, contentOfResolution, countOfPages, dateForCheck, incomeNumber, incomingDate, mainWorker, nameAndAddressOfApplicant, nameOfDepute, outDate, outNumber, result, secondaryWorkers, shortContentOfAppeal, statusOfWorking, themeOfAppeal, TypeOfDeputeAppeal, unitWhoDoResolution like %someString% 
+0

Das Schreiben der 17 Felder in der Abfrage hätte weniger Zeit in Anspruch genommen als das Posten dieser Frage. –

+0

vielleicht, aber das mag nicht richtig? –

+0

Veröffentlichen Sie Ihre Tabellenstruktur und erwähnen Sie auch, welche Felder Sie aus der 'LIKE' -Klausel weglassen möchten. – 1000111

Antwort

0

Eine Möglichkeit, dies erreichen können wäre die folgende:

SELECT 
CONCAT('SELECT * FROM Deputes_APPEAL WHERE ',GROUP_CONCAT(COLUMN_NAME SEPARATOR ' LIKE \'%something%\' OR '),' LIKE \'%something%\'') 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = 'YOUR_DATABASE_NAME' 
AND TABLE_NAME = 'YOUR_TABLE_NAME' 
AND COLUMN_NAME NOT IN ('Column1','Column2',....); 

Hinweis: Sie müssen die Spaltennamen in der NOT IN Klausel setzen diejenigen, die Sie in LIKE Ausdruck weglassen wollen.

Ausgang: Durch die obige Abfrage laufen Sie eine Ausgabe wie unten erhalten wird:

SELECT * FROM Deputes_APPEAL WHERE column_name1 LIKE '%something%' OR .......

nun diese Abfrage packen und ausführen.

0

Einfach das SQL mithilfe von Schleifen erstellen - super einfach.

final String[] properties = new String[] { /* all your fields here */ }; 

// build the SQL 
StringBuilder sb = new StringBuilder(); 
sb.append("SELECT o FROM YourEntity o "); 
if (properties.length > 0) { 
    sb.append("WHERE (").append(properties[0]).append("LIKE :v0"); 
    for (int i = 1; i < properties.length; ++i) { 
    sb.append(" OR ").append(properties[i]).append("LIKE :v").append(i); 
    } 
    sb.append(") "); 
} 

// build the query. 
Query query = session.createQuery(sb.toString()); 
for (int i = 0; i < properties.length; ++i) { 
    query.setParameter("v" + i, "%something%"); 
} 
Verwandte Themen