Tag: sql

如何在PHP脚本中正确构buildSQL查询?

我正在尝试创build一个SQL查询插入用户信息到数据库中。 $fname和$lnamevariables包含正确的值(“John”和“Doe”),但查询失败。 这是我的代码: $fname = $_POST['first_name']; $lname = $_POST['last_name']; $sql = "INSERT INTO users (fname, lname) VALUES ($fname, $lname)"; mysqli_query($conn, $sql); 检查错误消息后,我发现这个查询失败,错误说 “字段列表”中的未知列“John” 我怎样才能正确地包含variables到SQL查询,使其运行没有错误? 这个问题不是关于我很熟悉的SQL语法,而是关于使用PHP脚本中的variablesdynamic创build查询的规则。 我不想要一个只消除即时错误的快速补丁,而是一个没有错误和安全的最先进的解决scheme。

如何比较sqlite的TIMESTAMP值

我有一个Sqlite数据库,我希望在某个date之前selectTIMESTAMP列中的值。 我会认为这很简单,但我无法完成。 我试过这个: SELECT * FROM logged_event WHERE logged_event.CREATED_AT <'2010-05-28 16:20:55' 和它的各种变化,就像date函数一样。 我已经阅读过http://sqlite.org/lang_datefunc.html和http://www.sqlite.org/datatypes.html ,我希望这个列可以是一个数字types,并且可以在unix时间戳值。 可能不会。 任何人可以帮忙? 如果有关系,我正在Sqlite Expert Personal中试用。 编辑: 这里是types表的描述: CREATE TABLE [logged_event] ( [id] INTEGER NOT NULL PRIMARY KEY, [created_at] TIMESTAMP, [name] VARCHAR(64), [data] VARCHAR(512) ); 而testing数据: INSERT INTO table VALUES(1,'2010-05-28T15:36:56+0200','test','test'); INSERT INTO table VALUES(2,'2010-05-28T16:20:49+0200','test','test'); INSERT INTO table VALUES(3,'2010-05-28T16:20:51+0200','test','test'); INSERT INTO table VALUES(4,'2010-05-28T16:20:52+0200','test','test'); […]

SQLselect即将到来的生日

我正在尝试编写一个存储过程来select有即将到来的生日的员工。 SELECT * FROM Employees WHERE Birthday > @Today AND Birthday < @Today + @NumDays 这是行不通的,因为出生年份是生日的一部分,所以如果我的生日是'09 -18-1983',不会在'09-18-2008'和'09-25-2008'之间。 有没有办法忽略年份的date字段,只比较月/日? 这将每星期一上午运行,以提醒pipe理人员即将到来的生日,所以可能会跨越新的一年。 这是我最终创build的工作解决scheme,谢谢Kogus。 SELECT * FROM Employees WHERE Cast(DATEDIFF(dd, birthdt, getDate()) / 365.25 as int) – Cast(DATEDIFF(dd, birthdt, futureDate) / 365.25 as int) <> 0

在数据库中查找最接近的数值

我需要find一个select语句,它将返回一个与我的input完全匹配的logging,或者如果找不到完全匹配,则返回最接近的匹配。 这是我迄今为止的select陈述。 SELECT * FROM [myTable] WHERE Name = 'Test' AND Size = 2 AND PType = 'p' ORDER BY Area DESC 我需要做的是find最接近的“区域”字段,所以如果我的input是1.125和数据库包含2,1.5,1和0.5查询将返回包含1的logging。 我的SQL技能是非常有限的,所以任何帮助将不胜感激。

MySQL:什么是LIKE的反向版本?

MySql中的LIKE运算符用于查找包含我们查询文本的行,例如: select name from user where name like "%john%" 这将返回John Smith , Peter Johnson等 如果我需要相反的东西 – 查找包含在查询文本中的行? 例如,我给它John Smith and Peter Johnson are best friends并希望它find我可以在这个string中find的所有名字。 怎么做?

T-SQL:舍入到最近的15分钟间隔

HH:MM值最接近15分钟的最佳方法是什么? 我不跟踪秒,所以他们无所谓。 00:08:00 becomes 00:15:00 00:07:00 becomes 00:00:00 01:59:00 becomes 02:00:00 等等。 有没有一个优雅的非UDF或Case语句方法来做到这一点? 编辑:这是我用来获得上述值,我想要整理的SQL: CONVERT(CHAR(8), DATEADD(n, SUM(DATEDIFF(n, starttime, stoptime)), 0), 108) starttime和stoptime是SQL datetime 。

SQL Server依赖关系

有没有一种简单的方法来追查SQL Server 2005 +中的表/存储过程/函数依赖关系? 我已经inheritance了一个巨大的应用程序,包含很多表格,甚至更多的存储过程和function,这些程序和function是相互关联的。 在一天结束的时候是否有办法构build一个依赖树? 理想情况下,我正在寻找双向: 对于表/程序 – 依赖于它? :向我展示所有最终引用它的存储过程(最好在树视图中使子过程嵌套到调用它们的更大的过程中) 对于一个程序 – IT依赖于什么? :向我展示给定过程在运行时(或可能)碰到的所有过程和表格。 看来这个工具不应该那么难,而且对于数据库维护通常是非常有用的。 有人知道这样的事情吗? 如果这不存在,为什么不行? Management Studio中的内置function非常好,但信息看起来并不完整。

sql在asp.net中慢速运行ssms

我已经有这个问题了几个星期了。 问题是,查询需要4-5分钟在网站上运行,最多2或3秒钟才能在ssms中运行。 另外我发现,在对这个查询做了一些改变,比如添加customerIdvariables后,它会在网页上快速运行,但是到第二天又会变慢。 有问题的查询是这样的: DECLARE @customerID INT SET @customerID = @CustID DECLARE @MyTable table( Iden int NOT NULL IDENTITY(1,1), ProductID int) INSERT INTO @MyTable(ProductID) SELECT P.ProductID FROM Product P WITH (NOLOCK) left join Compunix_ProductMMY cpmmy with (nolock) on p.ProductID = cpmmy.ProductID left join Compunix_CustomerMMY ccmmy with (nolock) on ccmmy.mmyid = cpmmy.mmyid WHERE P.Deleted=0 AND P.Published=1 […]

是否可以使用单个UPDATE SQL语句执行多个更新?

比方说,我有一个列IDB和标题的表。 我需要更改标题列的所有值: 从“a-1”到“a1” 从“a.1”到“a1” 从“b-1”到“b1” 从“b.1”到“b1”。 现在,我正在执行两个UPDATE语句: UPDATE tbl SET title='a1' WHERE title IN ('a-1', 'a.1') UPDATE tbl SET title='b1' WHERE title IN ('b-1', 'b.1') 这完全不是问题,如果表很小,单个语句在一秒钟内完成,只需要执行几条语句。 你可能猜到了 – 我有一个巨大的表来处理(一个语句在大约90秒内完成),我有大量的更新来执行。 那么,是否可以合并更新,以便只扫描一次表格? 或者,在这样的情况下,还有更好的办法。 编辑:请注意,我正在使用的真实数据和我必须执行的数据的更改并不是真的那么简单 – string更长,他们不遵循任何模式(这是用户数据,所以没有假设可以做成 – 可以是任何东西)。

使用COALESCE函数使用逗号分隔值

我有一个表( EMP )我知道使用COALESCE函数我们可以通过这种方式获得任何列的值 23,23,45,34 SELECT OfferID FROM Emp where EmpID= 23 但我没有得到实现这个的语法 任何帮助将是伟大的,解决这个问题。