小编JNK*_*JNK的帖子

为什么这个SQL INSERT语句会返回语法错误?

好吧,我有一个非常简单的mysql数据库,但当我尝试通过mysql-admin运行此查询时,我得到奇怪的错误

INSERT INTO customreports(研究,类型,模式,选择,描述)VALUES('1','2','3','4','5');

错误:

1064 - 您的SQL语法出错; 查看与您的MySQL服务器版本对应的手册,以便在第1行使用"select,description"VALUES('1','2','3','4','5')附近的正确语法

mysql sql

2
推荐指数
1
解决办法
2276
查看次数

PowerShell - 输出到不起作用的变量

我正在编写一个相当冗长的PowerShell脚本来执行许多功能.在大多数情况下,一切都进展顺利.

但是,我在脚本的所有级别运行的另一个函数是一个非常详细的日志.我将发布命令行部分作为示例(简化):

    $Batch = $RunMe[1]
    $ResultCode = (Invoke-Expression $Batch -ErrorAction Stop)
    $ResultCode
Run Code Online (Sandbox Code Playgroud)

我的预期结果是:

Return Code 0

然后我会记录它.相反,我得到的是:

C:\batchfiles\batchfile.bat argument

这是我Invoke-Expression用来执行的命令.

一些快速解释变量:

$RunMe 是一个存储命令的数组(0是"Batch"或"Proc",1是要运行的命令)

$Batch 是在编写的代码中创建的(这是对它的第一个引用)

$CurrFileToExec是当前正在处理的文件(脚本一次在文件夹上运行).我正在使用它来替换我从SQL获得的命令行的字符串.

我无法$ResultCode传递命令的正确输出.它只是$Batch再次传递命令行函数().

正如我所说,实际的功能部分工作得很好,但我无法将返回代码传递给我的日志文件.

powershell

2
推荐指数
1
解决办法
2784
查看次数

根据哪些行首先满足条件对sql查询中的行进行排序

我想知道在 sql server 中是否有任何方式可以根据哪些行首先满足条件来对行进行排序,例如,如果我正在编写这样的查询

SELECT * FROM IMAGES 
WHERE NAME LIKE '%TEST%'
AND DESCRIPTION LIKE '%TEST%'
Run Code Online (Sandbox Code Playgroud)

我希望与名称匹配的行出现在与描述匹配的行之前,通常 sql server 会按它们的 ID 排列它们,所以......无论如何要这样做?!(注意:我不想使用 union 语句,因为这会耗尽数据库)。

sql sql-server

2
推荐指数
2
解决办法
2441
查看次数

如何在SQL Server中为自动增量列指定特定值?

我在sql server中有一个自动增量标识列,但我想为其中一行指定一个特定的值.所以号码方案如下:

1 ...,
2....,
999 - for the reserved entry,
3....,
n....
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

sql sql-server

2
推荐指数
2
解决办法
3056
查看次数

PHP/MySQL更新代码

我正在尝试从php调用行更新到mysql数据库.它失败但是当我尝试调用插入新行时,它的工作方式相同.

$result = mysql_query("INSERT INTO auth (username, password, studycode, description, server) VALUES ('$username', '$password', '$studycode', '$description', '$server')");
Run Code Online (Sandbox Code Playgroud)

但是这段代码失败了

$result = mysql_query("UPDATE auth SET username='$username', password='$password', studycode='$studycode', description='$description', server='$server' WHERE index='$id' LIMIT 1;");
Run Code Online (Sandbox Code Playgroud)

index是第一列及其表的键/ id.

编辑:好的所以我刚进入mysql管理员并尝试了我的代码将发送的确切命令来跟踪错误.

UPDATE auth SET username='username', password='password', studycode='ab9102y', description='test change', server='server2' WHERE index='5' LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

给了我错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index='5' LIMIT 1' at …
Run Code Online (Sandbox Code Playgroud)

php mysql database

1
推荐指数
1
解决办法
4203
查看次数

如何在SQL Server中使用datetime WHERE子句进行选择?

如果我需要选择的时间少于datetime,我会这样做:

  SELECT StackerReplacedEventID, Occured 
  FROM StackerReplacedEvent 
  WHERE Occured<CONVERT(DATETIME, 'Jul 11 2011 03:50PM', 120)
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.我也尝试过这种方式:

WHERE Occured<'Jul 11 2011 03:50PM'
Run Code Online (Sandbox Code Playgroud)

sql sql-server

1
推荐指数
1
解决办法
6438
查看次数

慢的SQL事务块表

我有一个非常慢的sql事务,它将在表中插入新行。来自其他连接的所有其他“选择”查询都将等待此操作来解锁表。

在第一个事务有效时,是否可以从表中获取旧行?

SqlExpress 2008 R2。例如:

    private void button1_Click(object sender, EventArgs e)
    {
        System.Threading.Thread t = new System.Threading.Thread(
            delegate()
            {
                var conn = new SqlConnection(@"Data Source=ARTNB\SQLEXPRESS;Initial Catalog=test;User ID=**;Password=******");
                conn.Open();
                var cmd = conn.CreateCommand();
                var tr = conn.BeginTransaction( IsolationLevel.RepeatableRead, "test");
                cmd.Transaction = tr;
                cmd.CommandText = @"INSERT INTO Cards (SerialNumber,OperationID,TariffID,RequestTime,State,AgentInfo) VALUES('1213','345',13, GETDATE(),1,'')";
                cmd.ExecuteNonQuery();
                //very slow transaction
                System.Threading.Thread.Sleep(300000);
                tr.Commit();
                conn.Close();
            });
        t.Start();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        var conn = new SqlConnection(@"Data Source=ARTNB\SQLEXPRESS;Initial Catalog=test;User ID=**;Password=******");
        conn.Open();
        var cmd = conn.CreateCommand();
        var …
Run Code Online (Sandbox Code Playgroud)

sql-server transactions isolation-level sql-server-2008r2-express

1
推荐指数
1
解决办法
1500
查看次数

Lambda性能杀手

我想知道为什么C#会提供lambda表达式,如果它是一个性能杀手?

试图运行以下内容:

Stopwatch sw = new Stopwatch();
 sw.Start();
 x = x.Select((int i) => i += 1).ToArray();
 sw.Stop();
 Console.WriteLine(sw.ElapsedTicks);
Run Code Online (Sandbox Code Playgroud)

Stopwatch sw = new Stopwatch();
sw.Start();
for (int j = 0; j < 1000; j++) y[j] += 1;
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
Run Code Online (Sandbox Code Playgroud)

对于x = 1000,我们会发现巨大的差异.

是否有适合lambda的用例?

c# linq performance lambda

1
推荐指数
1
解决办法
1901
查看次数

MySql存储过程创建错误

我试图在我的mysql数据库中使用下面的代码创建一个存储过程.我收到一个错误.请帮我解决

我的MySQl版本是5.0.51b

CREATE PROCEDURE tv_insert_user(IN firstName VARCHAR(25),
IN lastName VARCHAR(25), IN emailId VARCHAR(22),IN countryId INT,IN stateId INT)
  BEGIN
     INSERT INTO tv_user_master(FIRST_NAME,LAST_NAME,EMAIL,COUNTRY_ID,STATE_ID) VALUES(firstName,lastName,lname,emailId,countryId,stateId)
  END
Run Code Online (Sandbox Code Playgroud)

错误:


错误代码:1064您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第5行的"END"附近使用正确的语法(0 ms)

mysql stored-procedures

0
推荐指数
1
解决办法
2093
查看次数

我如何通过SQL中的聚合字段过滤(where子句)

我有以下查询:

 Select Distinct Product, sum(Deals) as TotalDeals
 from Metrics m
 group by Product
Run Code Online (Sandbox Code Playgroud)

我想将查询更改为仅返回TotalDeals = 0的位置.

在查询中使用where子句的最佳方法是什么(而不是在事实之后过滤掉结果集)

sql

0
推荐指数
1
解决办法
164
查看次数

在同一文件夹中找到最新的文件名并复制为重命名的文件

我看到了一些类似的帖子,但不幸的是,到目前为止,这对我来说并不适用.我想获取最新的备份文件(随机生成),然后将文件复制并重命名为具有固定名称的同一文件夹,以便我可以安排还原作业.

备份文件如下:

Fin123.bak
Fin125.bak
Sales456.bak
HRF100.bak

我想获取最新文件(按创建日期),然后复制并重命名文件,如Fin.bak.在上面的文件中,Fin125.bak是最新的备份文件,我想将其复制并重命名为Fin.bak.powershell脚本应该忽略所有其他文件,如Sales,HR等.只有以Fin开头且具有最新创建日期的文件.

任何帮助是极大的赞赏.谢谢穆罕默德

powershell

0
推荐指数
1
解决办法
1万
查看次数

为什么ad-hoc SQL比在存储过程中执行相同的代码运行得更快?

我有一个存储过程,可以在SQL Server 2005中批量处理电话和地址

如果我执行存储过程需要2个小时.但是,如果我运行相同的代码和相同的批处理,它需要2秒.

我已尝试以下步骤使其更快但它们没有工作:

  • 重新索引整个数据库
  • SET ANSI_NULLS ON;
  • DBCC FreeProcCache
  • DBCC DROPCLEANBUFFERS

这是基本代码

USE [MyDB]

GO



/****** Object:  StoredProcedure [myschema].[ProccesBatch]    Script Date: 06/30/2011 10:37:33 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE [myschema].[ProccesBatch] 
-- Add the parameters for the stored procedure here

(@BatchId int)


AS

BEGIN

-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.

SET NOCOUNT ON;
SET ANSI_NULLS ON;

-- AD Hoc TESTING ONLY. This gets uncommented …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

-1
推荐指数
1
解决办法
1247
查看次数

PHP解析错误:"在意外的T_ENCAPSED和WHITESPACE上收到解析错误."

我收到一个PHP错误:

Parse Error received on unexpected T_ENCAPSED AND WHITESPACE. 
Run Code Online (Sandbox Code Playgroud)

行:($insert .= "($POST...)是生成错误的行.

(string)$insert;
if(is_array($_POST['Year']))
{
    foreach($_POST['Year'] as $k=>$v)
    {
        //the following line returns the error
        $insert .= "($_POST['Name'][$k], $_POST['One'][$k], $_POST['Two'][$k], $_POST['Four'][$k], $_POST['Eight'][$k], $_POST['Fifteen'][$k], $_POST['LJump'][$k], $_POST['HJump'][$k], $_POST['Shotputt'][$k], $_POST['Discuss'][$k], $_POST['Javelin'][$k], $_POST['Date'][$k], $_POST['Year'][$k]),";
    }
    $insert = substr_replace($insert ,0,-1);
}
else
{
    $insert .= "($_POST['Name'], $_POST['One'], $_POST['Two'], $_POST['Four'], $_POST['Eight'], $_POST['Fifteen'], $_POST['LJump'], $_POST['HJump'], $_POST['Shotputt'], $_POST['Discuss'], $_POST['Javelin'], $_POST['Date'], $_POST['Year'])";
}

$sql="INSERT INTO results_main 
(Name, One, Two, Four, Eight, Fifteen, LJump, HJump, Shotputt, Discuss, Javelin, …
Run Code Online (Sandbox Code Playgroud)

php mysql whitespace parsing

-1
推荐指数
1
解决办法
518
查看次数