我在我的数据库的书阅读有关指标,我在想,如果我在我的假设是正确的WHERE,在它的非常量表达式子句将不会使用索引.所以,如果我有
SELECT * FROM statuses WHERE app_user_id % 10 = 0;
Run Code Online (Sandbox Code Playgroud)
这不会使用在app_user_id上创建的索引.但
SELECT * FROM statuses WHERE app_user_id = 5;
Run Code Online (Sandbox Code Playgroud)
会在app_user_id上使用索引.
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
$username ="matt";
$pass = "bs12kfj";
$db = "mytest";
$tbl = "test2";
mysql_connect(localhost,$username,$pass);
mysql_select_db($db) or die( "Unable to select database");
$res = mysql_query("SELECT * FROM test2;");
$num = mysql_numrows($res);
echo "<table border='2'><tr>The Peeps</tr>";
while ($r = mysql_fetch_array($res)) {
echo "<tr>";
foreach($r as $rs){
echo "<td>$rs</td>";
}
echo "</tr>";
}
?>
</body>
Run Code Online (Sandbox Code Playgroud)
此代码执行时没有错误,但输出包含每行的每一列的副本,如此.
<table border='2'><tr>The Peeps</tr>
<tr><td>"matt"</td><td>"matt"</td><td>"phillips"</td><td>"phillips></td><td>"mathew.p@waburg.com"</td><td>"mathew.p@waburg.com"</td><td>20</td><td>20</td></tr><tr><td>"paul"</td><td>"paul"</td><td>"franklin"</td><td>"franklin"</td><td>"dude@live.com"</td><td>"dude@live.com"</td><td>30</td><td>30</td></tr><tr><td>"steve"</td><td>"steve"</td><td>"jobs"</td><td>"jobs"</td><td>"sjobs@apple.com"</td><td>"sjobs@apple.com"</td><td>23</td><td>23</td>
我不明白为什么当<td></td>echo语句中只有一个标记时,每列都是重复的.
我还检查了数据库,表中没有重复的条目.
我有一个方法将字节数组转换为整数
public int Encode(string input)
{
var bytes = Encoding.Unicode.GetBytes(input.ToLowerInvariant());
return BitConverter.ToInt64(bytes,0);
}
Run Code Online (Sandbox Code Playgroud)
为什么这个整数对于任何输入字符串都没有区别?
例如
input = "http://www.google.com => 31525695615402088
和
input = "http://www.microsoft.com => 31525695615402088
我有以下表达node.js应用程序.它正在使用'redis'npm包.
app.get("/test",function(req,res){
var data = [];
client.HGETALL("receipts",function(err,obj){
for(var id in obj){
data.push(JSON.parse(obj[id]));
}
});
console.log(data);
res.json(data);
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
代码运行没有错误; 但是,data变量是[]它返回浏览器的时间.

奇怪的是,当我从命令行运行相同的redis命令时,将填充该数组.
谁能告诉我这里发生了什么?