Tag: MySQL

MySQL错误1093 – 无法在FROM子句中为更新指定目标表

我在我的数据库中有一个表story_category与损坏的条目。 下一个查询返回损坏的条目: SELECT * FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 我试图删除它们执行: DELETE FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 但是我得到了下一个错误: #1093 – 您无法在FROM子句中指定目标表'story_category'进行更新 我怎样才能克服呢?

我的PDO声明不起作用

这是我的PHP sql语句,并且在var转储时返回false $password_md5 = md5($_GET['password']); $sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password, password_plain) VALUES (:fullname, :email, :username, :password, :password_plain)'); $result = $sql->execute(array( ':fullname' => $_GET['fullname'], ':email' => $_GET['email'], ':username' => $_GET['username'], ':password' => $password_md5, ':password_plain' => $_GET['password']));

与UTF-8字符的麻烦; 我看到的不是我所存储的

我试图使用UTF-8并遇到麻烦。 我尝试了很多东西, 这里是我得到的结果: ???? 而不是亚洲人物。 即使是欧洲文本,我也得到Se?or 。 奇怪的胡言乱语( Señor ?),例如Señor 新浪新闻 新浪新闻 。 黑色钻石,如塞尔。 最后,我陷入了数据丢失或者至less被截断的情况: Se for Señor 。 即使我的文字看起来不错,也没有正确sorting 。 我究竟做错了什么? 我如何修复代码 ? 我可以恢复数据吗?如果是这样,怎么办?

将Java连接到MySQL数据库

你如何连接到Java中的MySQL数据库?

检索每个组中的最后一条logging

有一个表格messages包含如下所示的数据: Id Name Other_Columns ————————- 1 A A_data_1 2 A A_data_2 3 A A_data_3 4 B B_data_1 5 B B_data_2 6 C C_data_1 如果我运行一个查询select * from messages group by name ,我会得到结果如下: 1 A A_data_1 4 B B_data_1 6 C C_data_1 什么查询将返回以下结果? 3 A A_data_3 5 B B_data_2 6 C C_data_1 也就是说,每个组中的最后一个logging应该被返回。 目前,这是我使用的查询: select * from […]

SQL只select列上具有最大值的行

我有这张表格(这里是简体版): +——+——-+————————————–+ | id | rev | content | +——+——-+————————————–+ | 1 | 1 | … | | 2 | 1 | … | | 1 | 2 | … | | 1 | 3 | … | +——+——-+————————————–+ 我如何select每行一个行,只有最大的转? 有了上述数据,结果应该包含两行: [1, 3, …]和[2, 1, ..] 。 我正在使用MySQL 。 目前我在while循环中使用检查来检测和覆盖结果集中的旧版本。 但是这是实现结果的唯一方法吗? 是不是有一个SQL解决scheme? 更新 正如答案所示,有一个SQL解决scheme, 这里是一个sqlfiddle演示 […]

MySQL数据透视表

如果我有一个MySQL表,看起来像这样: company_name操作页面数 ——————————- 公司A PRINT 3 公司A PRINT 2 公司A PRINT 3 公司B电子邮件 公司B PRINT 2 公司B PRINT 2 公司B打印1 公司A PRINT 3 是否有可能运行MySQL查询来获得这样的输出: company_name电子邮件打印1页打印2页打印3页 ————————————————– ———– CompanyA 0 0 1 3 公司B 1 1 2 0 这个想法是, pagecount可以改变,所以输出列的数量应该反映,每个action / pagecount对一列,然后每个company_name命中数。 我不确定这是否被称为数据透视表,但有人build议?

由于在MySQL中将保留字用作表或列名,导致语法错误

我试图执行一个简单的MySQL查询如下: INSERT INTO user_details (username, location, key) VALUES ('Tim', 'Florida', 42) 但是我收到以下错误: 你的SQL语法有错误; 检查对应于你的MySQL服务器版本的手册,在第1行的'key) VALUES ('Tim', 'Florida', 42)'附近使用正确的语法 我该如何解决这个问题?

我可以在PHP中混合使用MySQL API吗?

我search了networking,到目前为止我所看到的是,你可以使用mysql_和mysqli_在一起意思是: <?php $con=mysqli_connect("localhost", "root" ,"" ,"mysql"); if( mysqli_connect_errno( $con ) ) { echo "failed to connect"; }else{ echo "connected"; } mysql_close($con); echo "Done"; ?> 要么 <?php $con=mysql_connect("localhost", "root" ,"" ,"mysql"); if( mysqli_connect_errno( $con ) ) { echo "failed to connect"; }else{ echo "connected"; } mysqli_close($con); echo "Done"; ?> 是有效的,但是当我使用这个代码我得到的是: Connected Warning: mysql_close() expects parameter 1 […]

SQL注入绕过mysql_real_escape_string()

即使使用mysql_real_escape_string()函数,是否有SQL注入的可能性? 考虑这个示例情况。 SQL是像这样在PHP中构build的: $login = mysql_real_escape_string(GetFromPost('login')); $password = mysql_real_escape_string(GetFromPost('password')); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'"; 我听到很多人都对我说,即使使用了mysql_real_escape_string()函数,这样的代码仍然是危险的,可能会被破解。 但我想不出任何可能的利用? 这样的经典注射: aaa' OR 1=1 — 不工作。 你知道任何可能通过上面的PHP代码注入?