小编lex*_*exu的帖子

如何在DBI中重用WHERE子句逻辑?

免责声明:我第一次使用DBI.

我有一个MySQL表,其中包含许多索引字段(f1,f2,f3等),这些字段用于通过长时间运行的进程生成WHERE子句,这些进程遍历执行各种清理和测试操作的数据库块.

此代码的当前版本的工作方式如下:

sub get_list_of_ids() {
    my ($value1, $value2, $value3...) = @_;

    my $stmt = 'SELECT * FROM files WHERE 1';
    my @args;

    if (defined($value1)) {
        $stmt .= ' AND f1 = ?';
        push(@args, $value1);
    }
    # Repeat for all the different fields and values

    my $select_sth = $dbh->prepare($stmt) or die $dbh->errstr;
    $select_sth->execute(@args) or die $select_sth->errstr;

    my @result;
    while (my $array = $select_sth->fetch) {
        push(@result, $$array[0]);
    }
    return \@result;
}

sub function_A() {
    my ($value1, $value2, $value3...) = @_;

    my …
Run Code Online (Sandbox Code Playgroud)

mysql database iteration perl where

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

memcached数据会在内存中保留多长时间

如果我使用memcache将user_x的数据加载到内存中,这些数据将保持多长时间?

如果用户每年只登录一次,则内存中不需要此数据.

或者我是以错误的方式看待这个?

mysql database memcached

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

MySQL COUNT()多列

我正在尝试从我的数据库中的所有视频中获取最受欢迎的标签(忽略空白标签).我还需要每个标签的'flv'.如果每个视频都有一个标签,我就可以按照自己的意愿工作:

SELECT tag_1, flv, COUNT(tag_1) AS tagcount 
  FROM videos 
 WHERE NOT tag_1='' 
 GROUP BY tag_1 
 ORDER BY tagcount DESC LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)

但是在我的数据库中,每个视频都允许使用三个标签 - tag_1,tag_2和tag_3.有没有办法让从多列中读取最流行的标签?

记录结构是:

+-----------------+--------------+------+-----+---------+----------------+ 
| Field           | Type         | Null | Key | Default | Extra          | 
+-----------------+--------------+------+-----+---------+----------------+ 
| id              | int(11)      | NO   | PRI | NULL    | auto_increment | 
| flv             | varchar(150) | YES  |     | NULL    |                | 
| tag_1           | varchar(75)  | YES  |     | NULL    |                | 
| tag_2           | varchar(75) …
Run Code Online (Sandbox Code Playgroud)

mysql sql count

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

获取此结果的SQL查询

考虑我有一张user桌子,我有三列mobilePhone,homePhoneworkPhone...

我必须选择homePhone为每个用户作为第一PREF
如果没有价值
   ,我会去mobilePhone
   如果没有价值为它
      我会去workPhone....

有任何建议如何在mysql中完成..

mysql select

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

Perl:如何在没有根节点的情况下处理XML对象流

我需要用Perl解析一个巨大的文件.(所以我将使用流解析器..)该文件包含多个XML文档(对象),但没有根节点.这会导致XML解析器在第一个Object之后中止,就像它应该的那样.答案可能是修复假根节点之前/之后.

<FAKE_ROOT_TAG>Original Stream</FAKE_ROOT_TAG>
Run Code Online (Sandbox Code Playgroud)

由于文件很大(> 1GByte),我不想复制/重写它,而是宁愿使用透明的类/模块(对于XML Parser)"合并"或"合并"多个流.

stream1 : <FAKE_ROOT_TAG>                 \
stream2 : Original Stream from file        >   merged stream
stream3 : </FAKE_ROOT_TAG>                / 
Run Code Online (Sandbox Code Playgroud)

你能指点我这个问题的模块或示例代码吗?

xml perl merge stream

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

Perl和Moose:我应该使用什么基于Moose的包作为MooseX :: Method的替代品

令我沮丧的是,我注意到MooseX::Method不再维护和弃用.

该软件包MooseX-Method-Signatures被公布为替代品,但其文档说:这是ALPHA软件.使用风险由您自己承担.功能可能会改变.

<whine>我该怎么办</ whine>

perl moose

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

mysql子查询奇怪的慢

我有一个查询从另一个子查询选择中进行选择.虽然两个查询看起来几乎相同,但第二个查询(在此示例中)运行速度要慢得多:

SELECT
   user.id
  ,user.first_name
  -- user.*
  FROM user
  WHERE
    user.id IN (SELECT ref_id 
                  FROM education 
                 WHERE ref_type='user' 
                   AND education.institute_id='58' 
                   AND education.institute_type='1'
                );
Run Code Online (Sandbox Code Playgroud)

此查询需要1.2s解释此查询结果:

 id select_type table   type    possible_keys   key key_len ref rows    Extra
 1  PRIMARY         user   index    first_name  152 141192  Using where; Using index
 2  DEPENDENT SUBQUERY  education   index_subquery  ref_type,ref_id,institute_id,institute_type,ref_type_2  ref_id  4   func    1   Using where
Run Code Online (Sandbox Code Playgroud)

第二个查询:

SELECT
  -- user.id
  -- user.first_name
  user.*
  FROM user
  WHERE
    user.id IN (SELECT ref_id 
                  FROM education 
                 WHERE ref_type='user' 
                   AND education.institute_id='58' 
                   AND education.institute_type='1'
                );
Run Code Online (Sandbox Code Playgroud)

需要45秒才能运行,并解释: …

mysql sql database performance

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

关于datetime和tinyint的数据类型查询

我有一个Mysql datetime列,该列的java实体bean类中应该是相应的数据类型?

java-type对于Mysql tinyint会是什么样的?

java mysql

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

[_\s ^"]是指下划线和空格而不是"(引用)在Regex中?

[_\s ^"]是指下划线和空格,而不是"(引用)"

我知道括号([])表示字符范围,而^表示但不是,但我的问题是你能说[这不是那个]还是我必须将它们分成两组括号?

regex

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

从mysql查询中获取当前会话/进程ID

我正在尝试为伪数组变量创建一个表.看起来像

CREATE  TABLE IF NOT EXISTS `MyArray`.`ArrayTable` (
  `ID` INT UNSIGNED NOT NULL COMMENT 'Hash value of SessionID + ArrayName' ,
  `SessionID` INT UNSIGNED NOT NULL ,
  `ArrayName` CHAR(26) NOT NULL 
          COMMENT '32 digit char - 6 digit longest process id (assumtion)' ,
  `Index` INT UNSIGNED NOT NULL ,
  `Value` TEXT NOT NULL ,
  PRIMARY KEY (`ID`, `SessionID`) )
ENGINE = MyISAM;
Run Code Online (Sandbox Code Playgroud)

这个表还没有标准化,"希望这会让它更容易理解:)

为了避免客户端之间的冲突,客户端会话之间应该有区别.出于这个原因,我认为需要知道当前的会话/进程ID(就像"SHOW PROCESSLIST"),但真的需要知道IN WHICH进程的查询是什么?

mysql

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

标签 统计

mysql ×7

database ×3

perl ×3

sql ×2

count ×1

iteration ×1

java ×1

memcached ×1

merge ×1

moose ×1

performance ×1

regex ×1

select ×1

stream ×1

where ×1

xml ×1