# SQL Abfrage mit Variable



## IceTi (18. Jan 2008)

Ich möchte eine Datenbank Abfrage machen, wo die WHERE Klausur komplett in einer Variable steht, nur irgendwie funktioniert das nicht und ich weiss nicht warum:


```
String filter2 = "WHERE art=Nachhilfe";	
SQL.setQuery("SELECT job_id FROM job_jobs "+filter2+"");
```

Habe es auch schon so versucht aber auch kein Erfolg:


```
String filter2 = "WHERE art=Nachhilfe";	
SQL.setQuery("SELECT job_id FROM job_jobs '"+filter2+"'");
```

Allerdings funktioniert es so:

```
String filter="Nachhilfe";
SQL.setQuery("SELECT job_id FROM job_jobs WHERE art='"+filter+"'");
```


Was mache ich falsch?
Danke


----------



## Guest (18. Jan 2008)

Versuch mal:

```
String filter2 = "WHERE art='Nachhilfe' ";   
SQL.setQuery("SELECT job_id FROM job_jobs "+filter2 );
```


----------



## IceTi (18. Jan 2008)

Geht leider auch nicht:


```
org.apache.jasper.JasperException: An exception occurred processing JSP page /job_uebersicht.jsp at line 28
```


----------



## Oni (18. Jan 2008)

poste mal ein bisschen mehr code. das müsste eigentlich gehen.

das problem bei dem von dir geposteten code ist:

beim ersten hast du den Such-String nicht in anführungsstrichen.
beim zweiten hast du alles inklusive der where-clause in anführungsstrichen.

der von mir gepostet code müsste passen.

der syntax müsste so aussehen:

```
select spalte1 from tabelle where spalte1 = 'suchstring';
```


----------



## IceTi (18. Jan 2008)

Geht leider auch nicht, hier mal mehr Code:


```
if(filter == null || filter.equals("keinFilter")){
		SQL.setQuery("SELECT job_id FROM job_jobs");	
	}else{
		String filter2 = "WHERE art=Nachhilfe";	
		//SQL.setQuery("SELECT job_id FROM job_jobs WHERE art='"+filter+"'");
		SQL.setQuery("SELECT job_id FROM job_jobs 'filter2'");
	}
```

Wie gesagt: Das auskommentierte klappt wunderbar...


----------



## SlaterB (18. Jan 2008)

edit: dein Code entspricht nicht dem von gast....



----------


wenn du mehr Informationen zur Exception hast, dann poste sie, ansonsten:
mach mal

try {


....


} catch (Throwable t) {
t.printStackTrace();
throw new RuntimeException("aus die Maus");
}

drumherum


----------



## Oni (18. Jan 2008)

wie slaterb schon sagt, der Code entspricht nicht dem Code den ich gepostet habe


```
if(filter == null || filter.equals("keinFilter")){
      SQL.setQuery("SELECT job_id FROM job_jobs");   
   }else{
      String filter2 = "WHERE art=Nachhilfe";   
      //SQL.setQuery("SELECT job_id FROM job_jobs WHERE art='"+filter+"'");
      SQL.setQuery("SELECT job_id FROM job_jobs 'filter2'");
   }
```

versuchs mal so:


```
if(filter == null || filter.equals("keinFilter")){
      SQL.setQuery("SELECT job_id FROM job_jobs");   
   }else{
      String filter2 = "WHERE art='Nachhilfe'";   
      SQL.setQuery("SELECT job_id FROM job_jobs " + filter2);
   }
```


----------



## IceTi (18. Jan 2008)

Das ist aber auch verwirrend mit den ganzen ' und " ... jetzt geht es, danke !!


----------

