2015-04-15 18 views
5

Mam bardzo podstawowe oświadczenie, np:Generowanie „Fake” rekordy kwerendy

SELECT pet, animal_type, number_of_legs 
FROM table 

Jednakże jeżeli table obecnie jest, chcę wstawić jakieś fałszywe dane, wzdłuż linii:

rufus  cat  3 
franklin turtle 1 
norm  dog  5 

Czy można "wygenerować" te fałszywe zapisy, wiążąc każdą wartość z odpowiednim polem, z poziomu zapytania, aby zostały one zwrócone w wyniku zapytania?

+1

Wszystkie te biedne oszpecone zwierzęta! –

Odpowiedz

7
SELECT pet, animal_type, number_of_legs FROM table 
union select 'rufus', 'cat', 3 
union select 'franklin', 'turtle', 1 
union select 'norm',  'dog', 5 

Daje to zawartość table oraz dodatkowo 3 rekordy chcesz, unikając duplikatów, jeśli duplikaty są OK, a następnie zastąpić union z union all

edit: za komentarz na TSQL można zrobić :

select top 110 'franklin', 'turtle', 1 
from sysobjects a, sysobjects b   -- this cross join gives n^2 records 

Należy wybrał tabeli^2, gdzie n jest większe niż potrzebne lub rekordy przekroju przyłączenia wielokrotnie

+0

Czy istnieje sposób na "wybranie" 110 "franklin", tj. Określenie, że chcę 110 "duplikatów" franklina (liczba jest dowolna)? – Thomas

3

Nie jestem do końca pewien, co próbujesz zrobić, ale MySQL jest w pełni zdolny do wybierania danych „mock” i drukując je w tabeli:

SELECT "Rufus" AS "Name", "Cat" as "Animal", "3" as "Number of Legs" 
UNION 
SELECT "Franklin", "Turtle", "1" 
UNION 
SELECT "Norm", "Dog", "5"; 

co skutkowałoby:

+----------+--------+----------------+ 
| Name  | Animal | Number of Legs | 
+----------+--------+----------------+ 
| Rufus | Cat | 3    | 
| Franklin | Turtle | 1    | 
| Norm  | Dog | 5    | 
+----------+--------+----------------+ 

Wykonanie tego zapytania w ten sposób uniemożliwia faktyczne zapisywanie informacji w tabeli tymczasowej, ale nie jestem pewien, czy jest to właściwy sposób robienia rzeczy.

+0

Sidenote: Moja odpowiedź zakłada, że ​​tabela nie zawiera żadnych danych. Jeśli tak, użyj odpowiedzi Luisa. –

+0

Twoja odpowiedź jest również "poprawna"; jednak w tej sytuacji - z zastrzeżeniem, które określasz w swoim komentarzu - drugi przejmie "Zaakceptowany". Nie jest to łatwy wybór z mojej strony! +1 – Thomas

+0

@Thomas Nie ma problemu, zaakceptowałbym także jego minę. Po prostu nie zrozumiałem, że w tabeli są dane, po prostu założyłem, że chciałeś podać jakieś fałszywe wyniki. Wiwaty! –