好的,我很抱歉,我已经超出了我的深度。我不是那种依赖像这样的地方的人,任何帮助提高我的MySQL知识的非常感谢!MySql查询中的PHP变量
我有这个查询被调用来收集关于在我们的wordpress网站上注册的用户的信息。
$verified = $wpdb->get_results("SELECT wp_users.ID, wp_users.user_login, wp_users.user_nicename, wp_users.user_email, m1.meta_value AS first_name, m2.meta_value AS last_name, m3.meta_value AS address, m4.meta_value AS date_of_birth_ddmmyyyy, m5.meta_value AS do_you_consider_yourself_as_having_a_disability, m6.meta_value AS hearing_ability, m7.meta_value AS ethnic_origin, m8.meta_value AS sex, m9.meta_value AS mobile_number, m10.meta_value AS telephone_number, m11.meta_value AS postcode, m12.meta_value AS towncity, m13.meta_value AS county, m14.meta_value AS who_is_paying_for_the_course, m15.meta_value AS course_type, m16.meta_value AS start_date, m17.meta_value AS course_times, m18.meta_value AS duration, m19.meta_value AS venue, m20.meta_value AS price, m21.meta_value AS code
FROM wp_users
INNER JOIN wp_usermeta m ON wp_users.id = m.user_id
AND m.meta_key = 'wp_user_level'
AND m.meta_value =0
LEFT JOIN wp_usermeta m1 ON wp_users.id = m1.user_id
AND m1.meta_key = 'first_name'
LEFT JOIN wp_usermeta m2 ON wp_users.id = m2.user_id
AND m2.meta_key = 'last_name'
LEFT JOIN wp_usermeta m3 ON wp_users.id = m3.user_id
AND m3.meta_key = 'address'
LEFT JOIN wp_usermeta m4 ON wp_users.id = m4.user_id
AND m4.meta_key = 'date_of_birth_ddmmyyyy'
LEFT JOIN wp_usermeta m5 ON wp_users.id = m5.user_id
AND m5.meta_key = 'do_you_consider_yourself_as_having_a_disability'
LEFT JOIN wp_usermeta m6 ON wp_users.id = m6.user_id
AND m6.meta_key = 'hearing_ability'
LEFT JOIN wp_usermeta m7 ON wp_users.id = m7.user_id
AND m7.meta_key = 'ethnic_origin'
LEFT JOIN wp_usermeta m8 ON wp_users.id = m8.user_id
AND m8.meta_key = 'sex'
LEFT JOIN wp_usermeta m9 ON wp_users.id = m9.user_id
AND m9.meta_key = 'mobile_number'
LEFT JOIN wp_usermeta m10 ON wp_users.id = m10.user_id
AND m10.meta_key = 'telephone_number'
LEFT JOIN wp_usermeta m11 ON wp_users.id = m11.user_id
AND m11.meta_key = 'postcode'
LEFT JOIN wp_usermeta m12 ON wp_users.id = m12.user_id
AND m12.meta_key = 'towncity'
LEFT JOIN wp_usermeta m13 ON wp_users.id = m13.user_id
AND m13.meta_key = 'county'
LEFT JOIN wp_usermeta m14 ON wp_users.id = m14.user_id
AND m14.meta_key = 'who_is_paying_for_the_course'
LEFT JOIN wp_usermeta m15 ON wp_users.id = m15.user_id
AND m15.meta_key = 'course_type'
LEFT JOIN wp_usermeta m16 ON wp_users.id = m16.user_id
AND m16.meta_key = 'start_date'
LEFT JOIN wp_usermeta m17 ON wp_users.id = m17.user_id
AND m17.meta_key = 'course_times'
LEFT JOIN wp_usermeta m18 ON wp_users.id = m18.user_id
AND m18.meta_key = 'duration'
LEFT JOIN wp_usermeta m19 ON wp_users.id = m19.user_id
AND m19.meta_key = 'venue'
LEFT JOIN wp_usermeta m20 ON wp_users.id = m20.user_id
AND m20.meta_key = 'price'
LEFT JOIN wp_usermeta m21 ON wp_users.id = m21.user_id
AND m21.meta_key = 'code'
WHERE user_login NOT LIKE '%unverified__%'
ORDER BY course_type ASC");
现在我知道查询本身并不理想。但我想要做的是使用变量或其他方式来改变ORDER BY
的值,这将节省文件大小(系统资源呢?),这可能吗?
例如,如果我这就是我想实现(尽管它是错的)
$verified = $wpdb->get_results("SELECT wp_users.ID, wp_users.user_login, wp_users.user_nicename, wp_users.user_email, m1.meta_value AS first_name, m2.meta_value AS last_name, m3.meta_value AS address, m4.meta_value AS date_of_birth_ddmmyyyy, m5.meta_value AS do_you_consider_yourself_as_having_a_disability, m6.meta_value AS hearing_ability, m7.meta_value AS ethnic_origin, m8.meta_value AS sex, m9.meta_value AS mobile_number, m10.meta_value AS telephone_number, m11.meta_value AS postcode, m12.meta_value AS towncity, m13.meta_value AS county, m14.meta_value AS who_is_paying_for_the_course, m15.meta_value AS course_type, m16.meta_value AS start_date, m17.meta_value AS course_times, m18.meta_value AS duration, m19.meta_value AS venue, m20.meta_value AS price, m21.meta_value AS code
FROM wp_users
INNER JOIN wp_usermeta m ON wp_users.id = m.user_id
AND m.meta_key = 'wp_user_level'
AND m.meta_value =0
LEFT JOIN wp_usermeta m1 ON wp_users.id = m1.user_id
AND m1.meta_key = 'first_name'
LEFT JOIN wp_usermeta m2 ON wp_users.id = m2.user_id
AND m2.meta_key = 'last_name'
LEFT JOIN wp_usermeta m3 ON wp_users.id = m3.user_id
AND m3.meta_key = 'address'
LEFT JOIN wp_usermeta m4 ON wp_users.id = m4.user_id
AND m4.meta_key = 'date_of_birth_ddmmyyyy'
LEFT JOIN wp_usermeta m5 ON wp_users.id = m5.user_id
AND m5.meta_key = 'do_you_consider_yourself_as_having_a_disability'
LEFT JOIN wp_usermeta m6 ON wp_users.id = m6.user_id
AND m6.meta_key = 'hearing_ability'
LEFT JOIN wp_usermeta m7 ON wp_users.id = m7.user_id
AND m7.meta_key = 'ethnic_origin'
LEFT JOIN wp_usermeta m8 ON wp_users.id = m8.user_id
AND m8.meta_key = 'sex'
LEFT JOIN wp_usermeta m9 ON wp_users.id = m9.user_id
AND m9.meta_key = 'mobile_number'
LEFT JOIN wp_usermeta m10 ON wp_users.id = m10.user_id
AND m10.meta_key = 'telephone_number'
LEFT JOIN wp_usermeta m11 ON wp_users.id = m11.user_id
AND m11.meta_key = 'postcode'
LEFT JOIN wp_usermeta m12 ON wp_users.id = m12.user_id
AND m12.meta_key = 'towncity'
LEFT JOIN wp_usermeta m13 ON wp_users.id = m13.user_id
AND m13.meta_key = 'county'
LEFT JOIN wp_usermeta m14 ON wp_users.id = m14.user_id
AND m14.meta_key = 'who_is_paying_for_the_course'
LEFT JOIN wp_usermeta m15 ON wp_users.id = m15.user_id
AND m15.meta_key = 'course_type'
LEFT JOIN wp_usermeta m16 ON wp_users.id = m16.user_id
AND m16.meta_key = 'start_date'
LEFT JOIN wp_usermeta m17 ON wp_users.id = m17.user_id
AND m17.meta_key = 'course_times'
LEFT JOIN wp_usermeta m18 ON wp_users.id = m18.user_id
AND m18.meta_key = 'duration'
LEFT JOIN wp_usermeta m19 ON wp_users.id = m19.user_id
AND m19.meta_key = 'venue'
LEFT JOIN wp_usermeta m20 ON wp_users.id = m20.user_id
AND m20.meta_key = 'price'
LEFT JOIN wp_usermeta m21 ON wp_users.id = m21.user_id
AND m21.meta_key = 'code'
WHERE user_login NOT LIKE '%unverified__%'
ORDER BY " . $MYVARIABLE ."ASC");
$MYVARIABLE = 'my_order_by_column_name';
我读的地方,你可以有一个“ORDER BY子句”但我不知道这是什么是如何使用?
任何帮助非常感谢!
克雷格
难道只是我,还是我唯一一个谁不知道你实际上想要实现的? – Ben 2010-09-29 11:28:54
如果您在查询之前声明了'$ MYVARIABLE',那么您的代码将起作用。哦,并在''ASC“' - >''ASC”''之前放置一个空格' – 2010-09-29 11:34:54
我试图让mySQL查询结尾处的ORDER BY更具动态性,对不起,我知道我可能说的是jibberish,但基本上我想要根据所有列更改上述查询的顺序。与创建12个左右的变量相比,每个查询数据库的查询的最后一行都有细微的变化,我想知道是否可以改为 - 在查询的最后一行中引入一个变量,希望使它更友好。并避免不必要的代码重复。 – Craig 2010-09-29 11:39:19