scott1028
scott1028

Reputation: 437

how to select only some columns in SQLAlchemy?

This is my python code:

 cx=sqlalchemy.create_engine(u"mysql://username:password@ipaddress/database?charset=utf8")

 metadata=sqlalchemy.MetaData(cx)
 orm_obj=sqlalchemy.Table(u'I_POI',metadata,autoload=True)


 sql=orm_obj.select(u'poi_id,poi_name').where(u'poi_id>1 and poi_id>0').limit(3).offset(0)

 resultz=sql.execute()
 for i in resultz:
     print i

[DB] I_POI Table:poi_id,poi_name,poi_data1,poi_data2......poi_data10

I do it with existing database,but "select()" is no work..It still return total columns.
I want to get only some columns,please help me.

Upvotes: 7

Views: 11505

Answers (2)

shgnInc
shgnInc

Reputation: 2198

Use general purpose select instead of Table.select:

stmt = select([orm_obj.c.poi_id, orm_obj.c.poi_name]).\
where(and_(orm_obj.c.poi_id > 1, orm_obj.c.poi_id < 100)).\
limit(3)
result = conn.execute(stmt) 

Upvotes: 0

Flynn
Flynn

Reputation: 497

here is the code that works for me:

from sqlalchemy import select
from sqlalchemy.sql import and_

results = select([orm_obj.c.poi_id, orm_obj.c.poi_name])\
    .where(and_(orm_obj.c.id > 1, orm_obj.c.id < 100)).execute()
for id, name in results:
    print id, name

Upvotes: 9

Related Questions