MySQL查询仅输出奇数行

时间:2010-02-03 12:44:38

标签: php sql mysql

我有以下PHP方法从MySQL查询返回JSON字符串:

$sys_words_ref_join_query = mysql_query("
 SELECT user_words.*, sys_words.*
 FROM user_words, sys_words
 WHERE user_words.sys_words_ref = sys_words.sys_words_ref 
 & user_words.user_info_ref = '1'
 LIMIT 0, 7
");

$json_array = array();

while($words_obj = mysql_fetch_object($sys_words_ref_join_query)) {
 $json_array[] = $words_obj;
}

$result = json_encode($json_array);

echo $result;

我遇到的问题是$result只回显奇数DB行,例如。 1,3,5 ......等等。

知道为什么吗?感谢。

4 个答案:

答案 0 :(得分:8)

你应该在where子句中使用Logical ANDAND)而不是Bitwise AND&):

WHERE user_words.sys_words_ref = sys_words.sys_words_ref 
 AND user_words.user_info_ref = '1'

答案 1 :(得分:1)

这个条件:

user_words.sys_words_ref = sys_words.sys_words_ref & user_words.user_info_ref = 1

隐含ANDsys_words.sys_words_ref之间的按位user_words.user_info_ref,后来与user_words.sys_words_ref进行比较

因此,您只获得user_words.sys_words_ref与这两个字段之间的按位AND匹配的行,这些行可能仅适用于奇数行(最后一位设置)。

答案 2 :(得分:0)

您是否运行了 mysql_query 功能?我看不到那里。也试着回应一下:

print '<pre>';
print_r ($result);

答案 3 :(得分:0)

关系数据库中的行没有外部排序,因此没有行号。 RDBMS可以自由使用开发人员希望的任何内部排序。如果您需要订单,则必须使用ORDER BY子句明确指定它。