Arkadaşlar, SQL'de örnek olarak şu şekilde bir tablom var: id, name, password, ...
"SELECT * FROM Users;" ile tüm verileri çekiyorum. Buraya kadar tamam.
Ama "name" dışındaki tüm sütunları seçmek istiyorum. Nasıl bir sorgu çalıştırmalıyım? (Geri dönüşü id, password ve diğer tüm sütunlar olacak.)
(Sadece seçmek istediğim sütunları yazabilirim ama örnek olmayan asıl çalışan tabloya yeni sütun eklemesi olabiliyor.)
#SQL
Şuraya bir bak istersen; http://stackoverflow.com/questions/729197/sql-exclude-a-column-using-select-except-columna-from-tablea
Birkaç yöntem var ama kafama yatmadı gibi 😀
Buralara baktım ama zorlama yöntem gibi geldi. Önce alıp silmek vb.
@ozgurg aynen banada öyle geldi 🙂
View kullanabilrsin istersen.
View nedir?
@ozgurg
Sanal tablo olarak düşünebilirsin, o tabloya koymak istediğin sütunları eklersin direk onun üzerinden select yapabilirsin. Örneğin;
CREATE VIEW view_name AS
SELECT id, password, …
FROM table_name
WHERE [condition];
View’i oluşturduktan sonra select * from view_name yaparsan sadece view’e eklediğin verileri görürsün. Tam istediğin değil ama işini hızlandırır gibi.
@levante Peki performansa bir etkisi oluyor mu?
@ozgurg Onu araştırıp denesen daha iyi olur, yanlış yorum yapmayayım 🙂
@levante @hadi'nin dediği gibi aynı sonuca ulaşıyor View oluşturmak. 🙁 Teşekkür ederim.
MySQL mi?
SQLite.
@ozgurg Except tarzı bir method geliştirilmemiş. Varolan çözümler de çok pratik değil. Bir yazılım içerisinden mi çalışacak bu SQL? Eğer öyleyse çektikten sonra filtreleme yapmanız daha pratik olacak gibi görünüyor.
@wilhem Android uygulama içerisinde çalışacak. Ancak veri tiplerinde BLOB olduğu için bunu kullanmam gerekiyor ama dediğin gibi sanırım öyle bir komut yok. 🙁
@ozgurg Evet column hide tarzı bir komut yok. Androidde veriyi aldıktan sonra gride falan dolduruyorsanız oradaki kolonu hide etmeniz daha kolay olacak sanırım.
@wilhem BLOB'a girmeden bir yol arıyorum. Bulursam buna hiç gerek kalmayacak. 🙁
http://stackoverflow.com/questions/9122/select-all-columns-except-one-in-mysql buna baktın mı?
Bir çok sayfaya baktım. Bu da aralarında mı bilmiyorum ama denedim yine de. İşimi görmüyor. 🙁
Performans olarak hangisi daha iyidir bilemiyorum ama herhalde şunu kullanırdım:
http://snipplr.com/view/74945/extract-the-column-names-of-a-table-so-you-can-select-many-columns-but-exclude-some/
(SQL standardında böyle bir özellik olmaması garipmiş doğrusu)
SqLite da çalışmaz bu malesef
@wilhem Eyvallah. Şimdi gördüm sqlite dediğini. sqlite_master'dan uğraşıp öğrenmeye çalışması zor olur. Çekip kullanmayacak o zaman.
ek: sqlite_master'da da bu bilgiyi tutmuyormuş, öğrendiğim iyi oldu. pragma table_info diye bir çözümü varmış.
BLOB tipindeki veriyi almamam gerekiyor.
@turker Deneyeceğim.