Php MySQL查询只输出奇数行

Php MySQL查询只输出奇数行,php,sql,mysql,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 "); $js

我使用以下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…,等等


知道为什么吗?谢谢。

您可能应该在where子句中使用(
)而不是(
&
):

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

您是否运行了mysql\u查询功能?我在那里看不见。也试着回应这一点:

print '<pre>';
print_r ($result);
打印“”;
打印(结果);

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

此条件:

表示
sys\u words.sys\u words\u ref
user\u words.user\u info\u ref
之间的按位
,稍后将其与
user\u words.sys\u ref
进行比较

因此,您只会得到
user\u words.sys\u words\u ref
与这两个字段之间的按位
匹配的行,这可能仅适用于奇数行(设置了最后一位)

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