小编ech*_*_Me的帖子

你能在SQL中使用if-then-else逻辑吗?

我需要根据某种优先级从表中选择数据,如下所示:

select product, price from table1 where project = 1

-- pseudo: if no price found, do this:
select product, price from table1 where customer = 2

-- pseudo: if still no price found, do this:
select product, price from table1 where company = 3
Run Code Online (Sandbox Code Playgroud)

也就是说,如果我找到3个基于价格的产品project = X,我不想选择customer = Y.我只想返回结果3行并完成.

你怎么在SQL中做这样的事情?对pseudo-if使用某种CASE语句?做工会还是其他聪明的事情?

编辑:我正在使用MS SQL.

谢谢!

sql sql-server

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

带有ON DUPLICATE KEY UPDATE的MySQL LOAD DATA INFILE

为了将大量数据加载到MySQL中,LOAD DATA INFILE是迄今为止最快的选择.不幸的是,虽然这可以以INSERT IGNORE或REPLACE的方式使用,但目前不支持ON DUPLICATE KEY UPDATE.

但是,ON DUPLICATE KEY UPDATE有优势REPLACE.当存在重复时,后者执行删除和插入.这为密钥管理带来了开销.此外,自动增量ID在替换时不会保持不变.

ON DUPLICATE KEY UPDATE使用LOAD DATA INFILE时如何模拟?

mysql load-data-infile on-duplicate-key

42
推荐指数
2
解决办法
4万
查看次数

mysql - 在datetime和group中选择小时

我有一个ShoppingDates的日期时间列.

可以说我有1000排

  • 7/18/2012 5:33:39 PM
  • 2012年7月16日下午6:64:39
  • 7/14/2012 7:34:39 PM
  • 7/13/2012 8:30:39 PM
  • 7/13/2012 8:37:39 PM
  • ECT ....

    我想计算每个时间在一小时时间内出现的次数

    so 5:00 p.m - 5:59:59 pm
    so 6:00 p.m - 6:59:59 pm
    so 7:00 p.m - 7:59:59 pm
    so 8:00 p.m - 8:59:59 pm
    
    Run Code Online (Sandbox Code Playgroud)

    所以在上面的结果我会得到

    1|5pm-6pm
    1|6pm-7pm
    1|7pm-8pm
    2|8pm-9pm
    
    Run Code Online (Sandbox Code Playgroud)

    任何帮助表示赞赏.

    谢谢!

    mysql

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

    Javascript NiceEdit配置

    我正在尝试使用nicedit

    目前我正在使用它将nicedit添加到所有文本区域:

    <script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
    <script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
    
    Run Code Online (Sandbox Code Playgroud)

    如何配置这些wysiwygs?我发现我可以通过以下方式配置单个框:

    new nicEditor({fullPanel : true}).panelInstance('area2');
    
    Run Code Online (Sandbox Code Playgroud)

    但是在使用时我该怎么做bkLib.onDomLoaded(nicEditors.allTextAreas);

    我很困惑.

    谢谢!

    对于它的价值,我们也有jquery运行.

    javascript jquery nicedit

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

    MySQL InnoDB全文搜索包含电子邮件地址

    我在2台Mac笔记本电脑上安装了mysql社区5.6.13 - 一台使用os x 10.8,另一台使用os x 10.9.

    据我所知,mysql的安装是相同的,但相同的全文搜索在每次安装时表现不同.

    我的查询是:

    SELECT legal_matter.* FROM legal_matter 
    left join user_account 
    on user_account.id = legal_matter.lawyer_id 
    left join client_account 
    on client_account.id = legal_matter.client_account_id 
    WHERE MATCH (legal_matter.question) AGAINST ('lawyer@domain.com.au' IN BOOLEAN MODE) 
    OR user_account.username like '%lawyer@domain.com.au%' 
    OR legal_matter.display_name like '%lawyer@domain.com.au%' 
    OR client_account.company_name like '%lawyer@domain.com.au%' 
    
    Run Code Online (Sandbox Code Playgroud)

    在10.8的笔记本电脑上,查询正常执行,在10.9的笔记本电脑上,查询抱怨:

    Error Code: 1064. syntax error, unexpected '@', expecting $end 
    
    Run Code Online (Sandbox Code Playgroud)

    TI不知道它是否与不同的操作系统版本有任何关系,我怀疑没有,但我不知道问题是什么.

    任何指针都感激不尽.

    谢谢.

    mysql

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

    不能在AJAX中使用成功函数的div

    我不知道为什么这对我不起作用.

      }).success(function(data){
        if(data.status == 'success'){
                // $("#useravatar").empty();
    
                    for(i = 0;i < data.id.length; i++){
                $("#useravatar").prepend('<div id="av'+data.id[i]+'" class="avatar">'+data.avatar[i]+'</div>');
                var dropDiv = $('#av'+data.id[i]);  // Code from here dont work. No error. tried alert(data.id[i]); and is fine.
    
            dropDiv.css({
            left: 130,
            top: -190,
            opacity: 0,
            display: 'inline'
        }).animate({
            left: 5,
            top: 10,
            opacity: 1
        }, 7000, 'easeOutBounce');
    
                }
    
                }
    
    });
    
    Run Code Online (Sandbox Code Playgroud)

    如果我单独使用此代码:

      var dropDiv = $('#useravatar');  
    
            dropDiv.css({
            left: 130,
            top: -190,
            opacity: 0,
            display: 'inline'
        }).animate({
            left: 5,
            top: 10,
            opacity: 1
        }, 7000, 'easeOutBounce');
    
    Run Code Online (Sandbox Code Playgroud)

    将与该div一起工作. …

    javascript ajax jquery

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

    MySQL文本类型并使用更大的大小.它有效吗?

    我正在设计一个存储文档的数据库.其中一些文件的时钟刚刚超过64kb,没有一个大于128kb.似乎我唯一的办法是指定我的文本类型,MEDIUMTEXT其最大大小为16MB.这对我正在做的事情来说似乎有些过分,特别是因为我每天要存储大约一百份文件.我想我的问题是,由于MEDIUMTEXT比TEXT大得多,我是否会遇到性能损失.我不太了解MySQL内部,知道磁盘或内存上是否有一些奇怪的分配问题会让我感到困惑.当然,我们可以在像MongoDB这样现代化的东西中完成所有这些工作,但我无法对此进行签名.:-(
    如果将来有人正在努力解决这个问题,我想我会注意到MySQL中的文本类型及其最大尺寸以供参考.

    TINYTEXT 256 bytes
    TEXT 65,535 bytes ~64kb
    MEDIUMTEXT 16,777,215 bytes ~16MB
    LONGTEXT 4,294,967,295 bytes ~4GB
    
    Run Code Online (Sandbox Code Playgroud)

    任何人的建议将不胜感激.珍妮

    mysql database field

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

    搜索阿拉伯语单词中的阿拉伯语字母

    这是我的工作代码:

    <!DOCTYPE HTML>
    <html>
        <head>
            <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
        </head>
        <body>
            <?php
                $arabic = "????? ??????? ?????? ????? ????? ??????? ?? ??????? ???????";
                $french = "que voulez vous dire?";
    
                if (isset($_POST['search'])) {
                    $search = $_POST['search'];
                    $key = $_POST['key'];
                    $td = substr_count($arabic, $key);
                    echo $td;
                }
    
                echo "<br />" . $arabic;
    
                function count_occurences($char_string, $haystack, $case_sensitive = true) {
                    if ($case_sensitive === false) {
                        $char_string = strtolower($char_string);
                        $haystack = strtolower($haystack);
                    }
    
                    $characters = preg_split('//u', $char_string, -1, PREG_SPLIT_NO_EMPTY);
                    //$characters = str_split($char_string);
                    $character_count = …
    Run Code Online (Sandbox Code Playgroud)

    html php search arabic

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

    Mysql最大值来自3个不同的列

    有没有办法找到3个不同列的最大值?我正在尝试查找具有高于指定值的3列值中的任何一个的记录,并尝试避免在查询中创建这样的内容:

    column1 > 69 or column2 > 69 or column3 > 69
    
    Run Code Online (Sandbox Code Playgroud)

    表结构如下:

    id | column1 | column2 | column3
    1  |   5     |    4    |    3
    2  |  70     |    1    |    65
    3  |  66     |    3    |    90
    
    Run Code Online (Sandbox Code Playgroud)

    并选择如下:

    select id from tablex where column1 > 69 or column2 > 69 or column3 > 69
    
    -- but with better query, a bit prettier like this (it doesn't work of course)
    
    select id from tablex where MAX(column1, column2, …
    Run Code Online (Sandbox Code Playgroud)

    mysql sql max

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

    MySQL COUNT(CASE WHEN ...那么DISTINCT列)

    我的查询:

    COUNT(
        CASE WHEN YEAR(FieldValue) = YEAR(CURDATE()) 
        AND MONTH(FieldValue) = MONTH(CURDATE())
        THEN 1
        END
    ) AS mtd
    
    Run Code Online (Sandbox Code Playgroud)

    我想要的东西:

    COUNT(
        CASE WHEN YEAR(FieldValue) = YEAR(CURDATE()) 
        AND MONTH(FieldValue) = MONTH(CURDATE())
        THEN DISTINCT ColumnID
        END
    ) AS mtd
    
    Run Code Online (Sandbox Code Playgroud)

    这给出了一个错误.我不能使用GROUP BY.如果我在CASE之前添加DISTINCT它不起作用,它将FieldValue列视为DISTINCT,但我希望它将ColumnID计为不同.

    请帮忙

    mysql sql case count distinct

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