Tag: sql

在SQL Server中使用“透视”将行转换为列

那么我想我真的很密集。 我已经阅读了MS数据透视表的东西,我仍然有问题得到这个正确的。 我看到你们中有些人似乎吃了这些东西,所以我只是决定注册并提出问题。 我有一个正在创build的临时表,我们会说第一列是一个存储号,第二列是一个星期号,最后一列是第三列的总数。 此外,周数是dynamic的,商店数量是静态的。 Store Week xCount ——- —- —— 102 1 96 101 1 138 105 1 37 109 1 59 101 2 282 102 2 212 105 2 78 109 2 97 105 3 60 102 3 123 101 3 220 109 3 87 我希望它能以一个数据透视表的forms出现,如下所示: Store 1 2 3 4 5 6…. […]

插入MySQL表或更新(如果存在)

我想添加一行到数据库表,但如果一行存在具有相同的唯一键我想更新行。 例如, insert into table (id, name, age) values(1, "A", 19) 假设唯一的关键是id ,并且在我的数据库中有一个id = 1的行。 在这种情况下,我想用这些值更新该行。 通常这会产生一个错误。 如果我使用insert IGNORE它将忽略错误,但它仍然不会更新。

如何在LIMIT子句中应用bindValue方法?

这里是我的代码的快照: $fetchPictures = $PDO->prepare("SELECT * FROM pictures WHERE album = :albumId ORDER BY id ASC LIMIT :skip, :max"); $fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT); if(isset($_GET['skip'])) { $fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT); } else { $fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT); } $fetchPictures->bindValue(':max', $max, PDO::PARAM_INT); $fetchPictures->execute() or die(print_r($fetchPictures->errorInfo())); $pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC); 我明白了 你的SQL语法有错误; 检查对应于您的MySQL服务器版本的手册,在第1行的'15',15'附近使用正确的语法 看来PDO在SQL代码的LIMIT部分中将单引号添加到我的variables中。 我查了一下,我发现这个bug,我认为是相关的: http : //bugs.php.net/bug.php?id=44639 那是我在看什么? 这个错误已经从2008年4月开始! 我们在这期间应该做什么? 我需要build立一些分页,并且在发送sql语句之前需要确保数据是干净的,sql注入安全的。

计数(*)与计数(1)

只是想知道你们中的任何一个人是否使用Count(1)不是Count(*)并且如果在性能上有明显的差别,或者这只是从过去的日子中提出的遗留习惯? (具体的数据库是SQL Server 2005.)

join与子查询

我是一个老派的MySQL用户,并一直首选JOIN子查询。 但是现在每个人都使用子查询,我讨厌它,我不知道为什么。 我缺乏理论知识来判断自己是否有任何区别。 子查询和JOIN一样好,因此没有什么可担心的?

在PostgreSQL中插入重复更新?

几个月前,我从Stack Overflow的一个答案中学习了如何在MySQL中使用以下语法一次执行多个更新: INSERT INTO table (id, field, field2) VALUES (1, A, X), (2, B, Y), (3, C, Z) ON DUPLICATE KEY UPDATE field=VALUES(Col1), field2=VALUES(Col2); 我现在切换到PostgreSQL,显然这是不正确的。 这是指所有正确的表,所以我认为这是一个不同的关键字正在使用的问题,但我不知道这是在PostgreSQL文档涵盖。 为了澄清,我想插入几件事情,如果他们已经存在,以更新它们。

如何筛选具有多对一关系的SQL结果

假设我有桌子student , club和student_club : student { id name } club { id name } student_club { student_id club_id } 我想知道如何find足球(30)和棒球(50)俱乐部的所有学生。 虽然这个查询不起作用,但这是我迄今为止最接近的事情: SELECT student.* FROM student INNER JOIN student_club sc ON student.id = sc.student_id LEFT JOIN club c ON c.id = sc.club_id WHERE c.id = 30 AND c.id = 50

我如何创build一个参数化的SQL查询? 我为什么要?

我听说“每个人”都在使用参数化的SQL查询来防止SQL注入攻击,而不必为每一个用户input提供警报。 你怎么做到这一点? 你使用存储过程时会自动得到这个吗? 所以我的理解是非参数化的: cmdText = String.Format("SELECT foo FROM bar WHERE baz = '{0}'", fuz) 这将参数化? cmdText = String.Format("EXEC foo_from_baz '{0}'", fuz) 还是我需要做这样更广泛的事情,以保护自己免受SQL注入? With command .Parameters.Count = 1 .Parameters.Item(0).ParameterName = "@baz" .Parameters.Item(0).Value = fuz End With 使用参数化查询还有其他好处,除了安全考虑? 更新:这个伟大的文章被链接在Grotok的一个问题引用。 http://www.sommarskog.se/dynamic_sql.html

删除MySQL中的重复行

我有一个表格,内容如下: id (Unique) url (Unique) title company site_id 现在,我需要删除具有相同标题,公司和site_id的行。 一种方法是使用下面的SQL和一个脚本(PHP): SELECT title, site_id, location, id, count( * ) FROM jobs GROUP BY site_id, company, title, location HAVING count( * ) >1 运行此查询后,我可以使用服务器端脚本删除重复项。 但是,我想知道这是否只能使用SQL查询完成。

为什么我们总是喜欢在SQL语句中使用参数?

我对使用数据库非常新。 现在我可以编写SELECT , UPDATE , DELETE和INSERT命令。 但是我看过很多论坛,我们喜欢写: SELECT empSalary from employee where salary = @salary …代替: SELECT empSalary from employee where salary = txtSalary.Text 为什么我们总是喜欢使用参数,我将如何使用它们? 我想知道第一种方法的用途和好处。 我甚至听说过SQL注入,但我不完全明白这一点。 我甚至不知道SQL注入是否与我的问题有关。