1

嗨,我在 php 中尝试了这个查询,它运行良好,我必须在 python 中做同样的事情

   $select=mysql_query("SELECT DISTINCT A.entity_id AS entity_id ,A.email AS email,A.catquizid AS style_quiz_score ,A.catquizquesans AS style_quiz_answer,A.created_at AS date_joined,A.is_active AS is_active ,B.attribute_id AS attribute_id,B.value AS info FROM `customer_entity` AS A inner join  `customer_entity_varchar` AS B on A.entity_id=B.entity_id WHERE B.`attribute_id` IN  (1,2) limit 10",$conn);

    $arr=array();

    while($result= mysql_fetch_assoc($select))
        { 
            if(!isset($arr[$result['entity_id']]['lastname'])){
                $arr[$result['entity_id']]['firstname'] = $result['info'];
            }
            $arr[$result['entity_id']]['lastname'] = $result['info'];
            $arr[$result['entity_id']]["email"]=$result['email'];
            $arr[$result['entity_id']]["style_quiz_score"]=$result['style_quiz_score'];
            $arr[$result['entity_id']]["style_quiz_answer"]=$result['style_quiz_answer'];
            $arr[$result['entity_id']]["date_joined"]=$result['date_joined'];
            $arr[$result['entity_id']]["is_active"]=$result['is_active'];

            $arr[$result['entity_id']]["username"]=normalize_str($result['email']);
        }

在python中我试过这个

def customer_migrate(request):
    cursor = connections['migration'].cursor()
    cursor.execute("SELECT DISTINCT A.entity_id AS entity_id ,A.email AS email,A.catquizid AS style_quiz_score ,A.catquizquesans AS style_quiz_answer,A.created_at AS date_joined,A.is_active AS is_active ,B.attribute_id AS attribute_id,B.value AS info FROM customer_entity AS A inner join  customer_entity_varchar AS B on A.entity_id=B.entity_id WHERE B.attribute_id limit 4 ")
    row = cursor.fetchall()

我如何在 python 查询中使用 while 循环,

4

1 回答 1

3

使用 fetchone() 或只遍历游标:

row = cursor.fetchone()
while row is not None:
    print row
    row = cursor.fetchone()

或者

for row in cursor:
    print row
于 2013-02-06T11:29:52.903 回答