Query dinamiche

sabato 18 giugno 2011 - 04.35
Tag Elenco Tags  MySQL 5.5

dotnetnapo Profilo | Junior Member

Ciao a tutti,
da MYSQL volevo sapere se è possibile, avendo due tabelle generiche TAB1 e TAB 2, selezionare dinamicamente una o l'altra in base ad un parametro passato via URL.

esempio se

ID=1 la query mi seleziona la TAB1
ID=2 la query mi seleziona la TAB2

Grazie

speedx Profilo | Junior Member

Se fai una procedura dovrebbe essere possibile
//// Marcello C.

micto27 Profilo | Senior Member

Una possibilità è quella di sfruttare la nomenclatura delle tabelle.
Se il parametro valesse 1 o 2 e le tabelle si chiamassero Tabella1 e Tabella2
potresti ogni volta costruire dinamicamente il comando da eseguire:

sql = "SELECT * FROM TABELLA" & parametro & " WHERE........"

oppure di valutare il parametro se non fosse possibile, per via del nome delle tabelle, utilizzarlo direttamente

if (parametro == "1")
NomeTabella = "Pippo";
else
NomeTabella = "Pluto";
sql = "SELECT * FROM " & NomeTabella & " WHERE........"

Ciao

alx_81 Profilo | Guru

>Una possibilità è quella di sfruttare la nomenclatura delle tabelle.
>Se il parametro valesse 1 o 2 e le tabelle si chiamassero Tabella1
>e Tabella2
>potresti ogni volta costruire dinamicamente il comando da eseguire:
>
>sql = "SELECT * FROM TABELLA" & parametro & " WHERE........"
>
>oppure di valutare il parametro se non fosse possibile, per via
>del nome delle tabelle, utilizzarlo direttamente
>
>if (parametro == "1")
> NomeTabella = "Pippo";
>else
> NomeTabella = "Pluto";
>sql = "SELECT * FROM " & NomeTabella & " WHERE........"
>
>Ciao
Ciao, sì è una possibilità, ma è un po' pericolosa perchè ti espone ad attacchi di tipo sql injection.
Io sarei per il consiglio di Marcello oppure per fare la selezione applicativamente, prima di arrivare al database, ma creando due query distinte.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5