好吧,我有一个非常简单的mysql数据库,但当我尝试通过mysql-admin运行此查询时,我得到奇怪的错误
INSERT INTO customreports(研究,类型,模式,选择,描述)VALUES('1','2','3','4','5');
错误:
1064 - 您的SQL语法出错; 查看与您的MySQL服务器版本对应的手册,以便在第1行使用"select,description"VALUES('1','2','3','4','5')附近的正确语法
我正在编写一个相当冗长的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再次传递命令行函数().
正如我所说,实际的功能部分工作得很好,但我无法将返回代码传递给我的日志文件.
我想知道在 sql server 中是否有任何方式可以根据哪些行首先满足条件来对行进行排序,例如,如果我正在编写这样的查询
SELECT * FROM IMAGES
WHERE NAME LIKE '%TEST%'
AND DESCRIPTION LIKE '%TEST%'
Run Code Online (Sandbox Code Playgroud)
我希望与名称匹配的行出现在与描述匹配的行之前,通常 sql server 会按它们的 ID 排列它们,所以......无论如何要这样做?!(注意:我不想使用 union 语句,因为这会耗尽数据库)。
我在sql server中有一个自动增量标识列,但我想为其中一行指定一个特定的值.所以号码方案如下:
1 ...,
2....,
999 - for the reserved entry,
3....,
n....
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在尝试从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) 如果我需要选择的时间少于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事务,它将在表中插入新行。来自其他连接的所有其他“选择”查询都将等待此操作来解锁表。
在第一个事务有效时,是否可以从表中获取旧行?
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
我想知道为什么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的用例?
我试图在我的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)
我有以下查询:
Select Distinct Product, sum(Deals) as TotalDeals
from Metrics m
group by Product
Run Code Online (Sandbox Code Playgroud)
我想将查询更改为仅返回TotalDeals = 0的位置.
在查询中使用where子句的最佳方法是什么(而不是在事实之后过滤掉结果集)
我看到了一些类似的帖子,但不幸的是,到目前为止,这对我来说并不适用.我想获取最新的备份文件(随机生成),然后将文件复制并重命名为具有固定名称的同一文件夹,以便我可以安排还原作业.
备份文件如下:
Fin123.bak
Fin125.bak
Sales456.bak
HRF100.bak
我想获取最新文件(按创建日期),然后复制并重命名文件,如Fin.bak.在上面的文件中,Fin125.bak是最新的备份文件,我想将其复制并重命名为Fin.bak.powershell脚本应该忽略所有其他文件,如Sales,HR等.只有以Fin开头且具有最新创建日期的文件.
任何帮助是极大的赞赏.谢谢穆罕默德
我有一个存储过程,可以在SQL Server 2005中批量处理电话和地址
如果我执行存储过程需要2个小时.但是,如果我运行相同的代码和相同的批处理,它需要2秒.
我已尝试以下步骤使其更快但它们没有工作:
这是基本代码
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) 我收到一个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) sql ×5
sql-server ×5
mysql ×4
php ×2
powershell ×2
c# ×1
database ×1
lambda ×1
linq ×1
parsing ×1
performance ×1
t-sql ×1
transactions ×1
whitespace ×1