首先,我为这个糟糕的题目道歉,我不能很好地解释我的问题是什么,但我确信一个有经验的MySQL用户会知道的。
在查询数据库以检索特定的客户集之后,它们最初按照“已完成”列进行排序,值为"0“和"1”。
我想按交货日期ASC对所有值为"0“的客户进行排序,并按交货日期DESC对所有值为"1”的客户进行排序。
以下是我第一次也是唯一一次失败的尝试:
mysql_query("SELECT * FROM users WHERE (completed='0' ORDER BY delivery ASC) AND (completed='1&
环境: MySQL 5.1,Linux
我有一个存储过程,它从一个输入值中计算几个值。这些值作为OUT参数返回。我想对每个行集调用这个过程,并将这些值显示为结果集中的列。这些值具有复杂的关系,因此不容易为每个值构造不同的函数。
问题是:如何获得参数以显示为表中的列?
到目前为止,我的情况如下:
DELIMITER $_$
DROP PROCEDURE IF EXISTS in_out;
CREATE PROCEDURE in_out (
IN s TEXT,
OUT op TEXT,
OUT opn INT,
OUT opd TEXT
我试图用mysql连接器来修改实体框架6中的表。
错误是:
PM> update-database -verbose
Using StartUp project 'Facade'.
Using NuGet project 'DAL'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'GiveAndGet' (DataSource: localhos
我试图在MySQL中动态地将行转换为列,并在Java/Swing中显示结果。
用于将行转换为列的代码如下
SET @cols = NULL;
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(Name = ''',
Name, ''', Amount , NULL)) AS ', '''', Name , '''')
) INTO @cols
FROM table1;
S
我想在mytable的"auto“列中检查是否存在,如果不存在,则添加他的。A这样做:
mysql-> SHOW COLUMNS FROM mytable
之后,我用PHP检查结果中是否存在"auto“,如果不存在,则执行以下操作:
mysql-> ALTER TABLE mytable ADD auto VARCHAR (30) NOT NULL COLLATE utf8_general_ci
问:请告诉我,如何在一个查询中做到这一点?
在MySQL中,我有一个触发器:
BEGIN
IF (EXISTS(SELECT * FROM devices WHERE device_id = NEW.device_id)) THEN
SET NEW.id = NULL;
ELSE
INSERT INTO objects (object_type) VALUES ('3');
SET NEW.id = LAST_INSERT_ID();
END IF;
END
当该触发器(从objects表)获得新的id时,它会将该id插入到设备表的id列中。
当我提到它(例如PHP中的mysql_insert_
此外,INSERT/UPDATE/SELECT/DELETE,MySQL有一个叫做的东西。我读到它可能比普通的SELECTs快得多,我在MySQL控制台上尝试过,而且速度似乎很快。
但是,我发现的唯一信息是参考手册中的那一页,以及我能告诉你的信息,除了查看控制台中的数据之外,它对任何事情都没有用处。
那么,有谁有在HANDLERs中使用MySQL的真正Lifetm经验吗?
我可以在存储过程中使用它而不是SELECT吗?
我可以从像SELECT col INTO variable这样的列中分配变量吗?
我可以加入吗?还是我已经从几个HANDLERs手动完成了它们?
我想在mysql中做关联。
我对如何从每列(1-24)中减去列的平均值感到困惑?
表:
首先,我尝试用循环选择每一列,如果成功,我将开始减去它们,但选择每一列失败。
代码:
BEGIN
DECLARE i INT;
SET i:=1;
myloop: LOOP
SELECT 'i' FROM test_correl2 AS DEM;
SET i=i+1;
IF i=25 then
LEAVE myloop;
END IF;
END LOOP myloop;
SELECT @i;
END
我想更新一个MySQL数据库模式(用MySQL代码),但不幸的是,我不确定表的状态,因为它们是分布式的。
假设一些‘客户’有一个名为"user“的表,其模式如下
name VARCHAR(64) NOT NULL
password VARCHAR(64) NOT NULL
我想添加一个email列,但是它们可能已经有了一个电子邮件列(取决于它们的安装版本)。
我如何运行一个命令,以确保有一个email列,如果它已经存在,什么也不做?请记住,对于许多更复杂的表,我会这样做。
我知道我可以创建临时表并重新填充(如果这是唯一的解决方案,也会这样做),但我想可能有某种CREATE或UPDATE
我有一个包含id和name列的表。
START TRANSACTION;
UPDATE Test SET name='test' where id=1;
SELECT ROW_COUNT() INTO @affected_rows;
IF (@affected_rows > 0) THEN
COMMIT;
ELSE
ROLLBACK;
END IF
它似乎是在返回一个错误
您的SQL语法出现错误;请检查与您的MySQL服务器版本对应的手册,以获得在第1行“IF (affected_rows > 0)然后提交”附近使用的正确语法。
目前正在运行
我有一个python脚本,它将信息存储在csv文件中。列是名称、时间左、日期、ID I有一个MySql数据库,其中包含以下列:名称、时间输入、时间离开、日期、ID
剩下的时间设置为空。我用一个python脚本和熊猫一起更新其余的行。在另一个脚本中,如果ID匹配(ID是主键),我希望用CSV文件中的数据更新时间左列。
我想不出该怎么做。我已经为我想要的东西附加了下面的代码:
#loop through the data frame
for i,row in empdata.iterrows():
rowValue = row['ID']
我必须用mysql中的存储过程测试一些特性,所以我尝试在MySQL中创建一个:
CREATE OR REPLACE PROCEDURE insert_test(IN in_id Varchar(20), IN in_name Varchar(20))
BEGIN
insert into test(id, name) values(in_id, in_name);
END
但我有个错误:
执行INSERT语句时错误。“字段列表”中未知列“in_id”-连接: MySQLConnection: 16 in
这有什么问题吗?如果我将in_d和in_name变量更改为静态值,如‘test2
我需要用如下所示的存储过程填充报告:
CREATE PROCEDURE [dbo].SelectDataToReport
@table_name varchar (25),
@period varchar (25)
AS
BEGIN
DECLARE @mySql nvarchar (MAX)
SET NOCOUNT ON;
SET @mySql = 'SELECT * FROM '+@table_name+' WHERE Period = '+@period+''
EXEC (@my
我对SQL知之甚少,但我找到了一个命令,用于SQL Server在数据库中添加列(如果该列不存在)。遗憾的是,当对我的MySQL数据库执行时,它不起作用,返回一个语法错误。
$query = $dbh->prepare("if not exists (select * from syscolumns where id=object_id(':table_name') and name='where') alter table :table_name add where int(2)");
if($query->execute(arr
在SQL Server中,我可以使用动态sql字符串来实现这一点,但现在我需要对mysql执行同样的操作,但却一无所获,有什么方法可以实现这一点吗
IF NOT EXISTS (SELECT 1 FROM mysql.proc p WHERE NAME = 'stored_proc_name')
BEGIN
DELIMITER $$
CREATE PROCEDURE justATest()
BEGIN
-- some SP logic here
END$$
END
我将整个sql作为字符串存储在数据库列中,并在另一个存储过程中使用预准备语句Exe