我正在尝试优化我的数据库.为了做到这一点,我需要能够确定varchar列中最长的数据条目,然后将列定义修剪到恰好高于该值.
如何使用sql查找表中最长的varchar条目的长度?
CREATE TABLE `poller_output` (
`local_data_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`rrd_name` varchar(19) NOT NULL DEFAULT '',
`time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`output` varchar(200) NOT NULL DEFAULT '',
PRIMARY KEY (`local_data_id`,`rrd_name`,`time`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取数据,其中顺序与唯一ID无关.所以我的查询就是这样
SELECT DISTINCT id1, id2 FROM messages ORDER BY date
Run Code Online (Sandbox Code Playgroud)
如果我有一个包含以下数据的数据库:
id1 | id2 | date
5 | 6 | 1/2/2011
6 | 5 | 1/1/2011
Run Code Online (Sandbox Code Playgroud)
我只需要加载具有最新日期的列,因为ID是相同的2个人.真的,我必须加载id,其中一个id是你的,所以我现在的真实查询是
SELECT DISTINCT userid_1, userid_2
FROM messages
WHERE userid_2=$dbid
OR userid_1=$dbid
ORDER BY date
Run Code Online (Sandbox Code Playgroud)
我得到一个结果 [6 5] [5 9] [9 5] [5 15] [5 6] [5 17]
结果2和3是相同的,1和5是相同的.实际上只应查询4个结果.谢谢!
我试图删除一行中的单词,如果它们包含一个特定的字符串.以下是文本示例:
host-a, host-b, host-c+test, host-d, host-e+test
Run Code Online (Sandbox Code Playgroud)
我想删除任何包含的内容+test
,结果为:
host-a, host-b, host-d
Run Code Online (Sandbox Code Playgroud)
同样,我需要逐行应用它,而不是文件中的所有行.它将在宏中使用.
我怎样才能做到这一点?
我不能让它工作,不断收到错误信息.
错误
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 '-mail, password,
birth_date, age, sex, profile_text, zip_code, zip_code_state, c' at line 1
Run Code Online (Sandbox Code Playgroud)
码
mysql_query("INSERT INTO users (username, e-mail, password, birth_date, age, sex,
profile_text, zip_code, zip_code_state, coins, rank, profile_visits,
profile_likes, profile_image, profile_points, activated, deleted, reg_time,
last_active_time, reg_ip)
VALUES ('$randomName', 'awduhawd@hotmail.com', 'awd', '21/05/1990','0','2',
'0','4306','Sandnes','0','user','0','0','$image','0','0','0','$time',
'$time','0')")
or die(mysql_error());
Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本,要求我有一个包含多字值的数组.这需要自己对待.
all=( "test phrase" 4 11 13 )
for i in ${all@]}; do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
我离开了它:
test
phrase
4
11
13
Run Code Online (Sandbox Code Playgroud)
我需要得到:
test phrase
4
11
13
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我需要比较表中的2列并给出3件事:
我已经能够通过使用自身的联接获得仅行匹配的记录,但是我不确定如何一次获得所有其他记录。同时获取所有信息的重要性是因为这是一个非常活跃的表,并且数据的更改频率很高。
我无法发布表架构,因为其中有很多与该问题无关的数据。有问题的列都是int(11) unsigned NOT NULL DEFAULT '0'
。为此,我将它们称为mask
和mask_alt
。
我正在尝试在tmux中创建一个函数,以便在需要时,我可以调出命令提示符(Ctrl-B,:)并输入它并让tmux在我现有的会话中生成一个新窗口,其中运行了许多窗格一些特定的命令.
这可能吗?
我的分析团队使用如下查询:
SELECT
SUM(ul.upload_bandwidth) + SUM(dl.download_bandwidth) AS total
FROM
upload_facts ul, download_facts dl
WHERE
ul.date BETWEEN '2011-09-01' AND '2011-09-30' AND
dl.date BETWEEN '2011-09-01' AND '2011-09-30';
Run Code Online (Sandbox Code Playgroud)
由于正在发生的"连接",这需要很长时间,超过12000秒.
从两个表中分别进行总和只需几秒钟.我正在考虑每天将一笔金额放入一张单独的表中以加快速度.但是,我认为应该比这更容易.
我想消除连接并使用子查询来做到这一点,但是我不是100%肯定如何.我尝试了以下,但它没有用.
SELECT
(select upload_bandwidth from upload_facts where date
BETWEEN '2011-09-01' AND '2011-09-30')
+
(select download_bandwidth from downloaded_facts where date
BETWEEN '2011-09-01' AND '2011-09-30');
Run Code Online (Sandbox Code Playgroud)