基本上,我有一个类似如下的mysql查询:
mysql_query("SELECT n.title, v.value FROM posts n INNER JOIN votes v ON n.id = v.id");
我需要做的是从posts表中获取标题,并从votes表中获取当前投票值。
目前,除非发生投票,否则投票不会存储到投票表中。所以所有投票为0的帖子都不在投票表中。
这会导致错误,它试图获取标题和投票值,其中帖子id =投票值id。如果投票表中没有任何记录,那么value应该返回NULL或0,但是目前整个查询返回null,所以我甚至不能返回标题。
如何在一个查询中解决
下面是一个有趣的场景。在最近的五次访问期间,我在一个INSERT查询中遇到了一个SQL注入。后端代码如下所示:
$sqlquery= "INSERT INTO sometable set col1='" + $_GET['param'] + "'";
我可以在文件中插入任意值,甚至可以使用SELECT子查询将'/etc/passwd‘的内容插入到col1中,然后通过应用程序中其他地方的一个完全不同的功能读取它。
$sqlquery= "INSERT INTO sometable set col1='1
我有一个查询,它是我从MSSQL2000中提取的,并插入到一个MySql查询中。这不起作用,MySql会被*=操作员卡住。在本例中,我有两个名为person_name的varchar列。
SELECT * FROM tbl1 a, tbl2 b
WHERE a.id = b.id
AND a.person_name *= b.person_name
我知道在其他语言中,myInt *= myTotal也可以理解为myInt * myInt = myTotal。但是,我使用的varchars只包含所有字符,不包含整数。我把它写成这样:
AND a.person_name * a.person_
如果我有这样的代码(不相关的事情,比如初始化连接和省略句柄):
MYSQL_RES *res;
MYSQL_ROW row;
mysql_query(mysql, "some select query");
res = mysql_use_result(mysql);
while (row = mysql_fetch_row(res)) {
MYSQL_RES *res2;
MYSQL_ROW row2;
mysql_query(mysql, "some other select query using an id from the first&
mysql子查询中的结果顺序是否影响实际查询的顺序?我试过了,但没有取得真正的结果,因为有时看起来是这样,有时却没有。
例:
SELECT name FROM people WHERE pid IN (SELECT mid FROM member ORDER BY mdate)
在这种情况下,"order“-clause会影响结果的顺序吗?
谢谢。
我有一个mysql调用的while循环,但我也试图在while循环中运行另一个mysql查询,但它只执行一次。我想不出来。
下面是我的代码:
$sql = "SELECT * FROM widget_layout WHERE module_id=".mysql_real_escape_string($id)." AND state='".mysql_real_escape_string($page)."' AND position=".mysql_real_escape_string($position);
$query = m
我正在努力改进一个旧的系统(很久以前就写好了),在这个系统中,每个mysql查询都是通过字符串绑定的。因此,该查询的示例如下
"SELECT * FROM User WHERE id > '3'"
Id列当然是bigint和PK。
mysql如何处理查询中的'3‘,其中id应该是int值?我假设它被视为字符串(由于''),因此这个值在mysql分析/优化过程中被抛入int中。我说的对吗?
//更新我可能问错了方向。有两种方法来处理它。
(快速) Mysql自动检测id应该是int,并将查询重写/强制转换到
从用户处选择* id
我有两个有效的MySQL查询:
SELECT MAX(value) as value FROM data WHERE value_id = '123' AND DATE(time) = subdate(CURDATE(), 1)
第二个问题是:
SELECT MAX(value) as value FROM data WHERE value_id = '123' AND DATE(time) = subdate(CURDATE(), 2)
这两个查询几乎是相同的。他们还给我前一天(2017-10-24)的最高值和前一天(2017-10-23)的最高值。
现在,m
当我运行这个查询时,MySQL给我一个错误:
mysqli_query($connect,"GRANT SELECT,INSERT ON myblog.*
TO '$username'@'localhost' IDENTIFIED BY
(SELECT user_password from users where user_name = '$username')")
or die("fail to grant ".mysqli_error($connect));
这个查询出了什么问题?有没有更好
你能做到吗?我刚试过了,但似乎不起作用。
我在页面顶部包含了dbc.php,并在底部的dbc.php中创建了以下函数:
function getUserInfo($id) {
$thaString = mysql_query("SELECT * FROM users WHERE id = '$id'");
$thaString2 = mysql_query("SELECT * FROM users_profile WHERE uID = '$id'");
$showUR = mysql_fetch_array($thaString
我在下面的脚本中有一个问题。当通过PHP运行下面的脚本时,标记的查询返回一个结果。如果我将脚本回显到屏幕,并在MySQL上直接运行它,查询将返回14个结果(正如它应该的那样)。我一直找不到发生这种差异的任何理由。
我现在只看循环的第一次迭代。运行第一个循环的查询大约有200个结果。奇怪的是,在第二个查询运行的时候,结果的数量是正确的。所以我现在只关注第一次迭代。
//This line allows the GROUP_CONCAT in the next query to pull all the values
// it should rather than being limit
我发现MySQL返回一个
Incorrect usage/placement of 'SQL_CALC_FOUND_ROWS'
如果将SQL_CALC_FOUND_ROWS放入子查询中,则会出错
SELECT
*
FROM
(
SELECT SQL_CALC_FOUND_ROWS * FROM test_table
) as T1
有解决这个问题的办法吗?或者我只是错误地实现了它?
编辑:我需要将T1作为子查询是有原因的,以防有人想知道。
下面的两个查询有什么区别?
更新
这个问题已经在一个类似的问题中得到了回答,。
SELECT * FROM ca
LEFT JOIN exam
ON ca.subject = exam.subject
和
SELECT * FROM ca
LEFT OUTER JOIN exam
ON ca.subject = exam.subject
表格
Table 'CA'
--------------------
subject|score
----------------
ENG |25
MTH |34
BIO |18
Table 'Exam
我有这样的子查询。基本上,我使用了多个分离的条件来形成多个子查询。
SELECT
this_.id AS y0_,
this_.a AS y1_,
this_.b AS y2_,
this_.c AS y3_,
this_.d AS y4_,
this_.e AS y5_
FROM
table_a this_
WHERE
this_.id IN (
SELECT
this_.a AS y0_
我正在尝试运行一个简单的MYSQL查询,但是它抛出了一个错误: everytime.The查询是
SELECT * FROM `user_recommendation` LEFT JOIN `tracking`
user_recommendation和tracking在同一个数据库中,我在that.The下运行查询,抛出的错误是
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to u
有没有办法避免在SELECT查询中重复列表达式?我想除以列的总和和计数,但希望使用指定的名称,而不是重复SUM(value)/COUNT(value)或使用子查询。这个是可能的吗?如果是这样的话,这是通过不重复计算和计数来加快查询速度,还是mysql还记得已经计算过的表达式?
SELECT datalist.type, SUM(value) AS type_sum, COUNT(value) AS type_count, type_sum/type_count
FROM (...) AS datalist
GROUP BY datalist.type
抛出:#1054 -字段列表中未知列“ty