小编ype*_*eᵀᴹ的帖子

为什么我的php无法打印出我输入的字符串?

这是我输入的代码......

mysql_query("INSERT INTO test (string) VALUES ('tes><ssst')");    
Run Code Online (Sandbox Code Playgroud)

这就是我查询结果的方式:

$result = mysql_query("SELECT * FROM test");     

while($row = mysql_fetch_array($result))
  {
  echo $row['id'] . " ---- " . $row['string'];
  echo "<br />";
  }   
Run Code Online (Sandbox Code Playgroud)

但我只得到这个结果:

3 ---- tes>

我想念缺少的部分:" <ssst",但是当我进入数据库时​​,我可以检索我插入的字符串.发生了什么?谢谢.

html php mysql

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

SELECT MAX Date T-SQL子查询

我试图使用这样的查询从表中选择行

SELECT     pminf_member, pminf_schmem
         , pminf_date, pminf_fund
         , pminf_cont, pminf_rate
         , pminf_matrix
FROM   pe_minvf
WHERE (pminf_member = 4380) 
  AND (pminf_schmem = 'M') 
  AND (pminf_date <= '03/30/2011')
  AND (pminf_date =
           (SELECT MAX(pminf_date) AS Expr1
            FROM   pe_minvf AS pe_minvf_1
            WHERE  (pminf_member = 4380)
           )
       )
  AND (pminf_fund = 'LIFESTYLE')
Run Code Online (Sandbox Code Playgroud)

我应该从子查询(我认为)得到的是'01/01/2011'的日期,但是当我运行我的查询时,我得不到任何结果.

如果我用硬编码日期替换子查询,我会返回正确的行.例如

SELECT  pminf_member, pminf_schmem
      , pminf_date, pminf_fund
      , pminf_cont, pminf_rate
      , pminf_matrix
FROM  pe_minvf
WHERE (pminf_member = 4380)
  AND (pminf_schmem = 'M')
  AND (pminf_date <= '03/30/2011')
  AND (pminf_date = '01/01/2011')
  AND (pminf_fund …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server subquery

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

如何在日期和时间之间运行查询?

我有一个查询,我需要从两个不同的日期和时间提取信息.
我想拉昨天和今天之间以及从昨天到今天13:00:00之间的最后修改时间18:00:00之间的所有日期.

我怎么能做到这一点?

  SELECT A1.CHCASN, 
         A1.CHTRKN,
         SUM(A2.CDPAKU) AS UNITS, 
         A1.CHACWT, 
         SUM(A2.CDPRC * A2.CDPAKU) AS COST, 
         SUM(A3.STRPRC * A2.CDPAKU) AS RETAIL, 
         A1.CHDLM, 
         A1.CHTLM
    FROM CHCART00 A1, 
         CDCART00 A2, 
         STSTYL00 A3
   WHERE A1.CHCASN = A2.CDCASN
     AND A2.CDSTYL = A3.STSTYL
     AND A2.CDCOLR = A3.STCOLR
     AND A2.CDSDIM = A3.STSDIM
     AND A1.CHSTAT = '25'
     AND A1.CHROUT = 'UPSCA'
     AND A1.CHDLM BETWEEN 20110505 And 20110506
     AND A1.CHTLM >= '160000'
     AND A1.CHTLM <= '130000'
GROUP BY A1.CHCASN, A1.CHTRKN, A1.CHACWT, A1.CHDLM, A1.CHTLM
ORDER BY A1.CHCASN
Run Code Online (Sandbox Code Playgroud)

sql db2 db2-400

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

mysql utf8编码和唯一键

我正在向用户表(来自许多站点的许多用户)输入数据:
myisam default collation latin1_swedish....

将该数据导入到 innodb table utf8_general

我已经在username,site_id组合上放置了一个唯一的密钥,但这对于同一站点的2个用户来说是失败的:

user 1    dranfog,
user 2    drånfog
Run Code Online (Sandbox Code Playgroud)

如果我跑:

SELECT IF('å' = 'a', 'yep', 'nope');
Run Code Online (Sandbox Code Playgroud)

直接在目标数据库上使用utf8编码,我得到'yep'.

任何解决此问题的提示都非常受欢迎.我的印象是utf8会将这些视为不同的字符,但似乎并非如此.

mysql unicode collation utf-8 unique-index

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

你能解决这个简单的SQL查询吗?

假设它是一个销售照相机的网站.这是我的实体(表格):

Camera: A simple camera
Feature: A feature like: 6mp, max resolution 1024x768, 
Run Code Online (Sandbox Code Playgroud)

事情是相机和功能之间我有多对多的关系,所以我有一个额外的表:

camera -> cameras_features -> feature
Run Code Online (Sandbox Code Playgroud)

所以,查询很简单:

如何获得具有1,2和3功能的所有相机?

这就像构建位图索引一样.

您可以用来测试解决方案是否正常的数据

C1 has features 1,2,3
C2 has features 1,2,4
C3 has features 1,2
Run Code Online (Sandbox Code Playgroud)

以下是查询和预期结果:

  • 显示所有具有功能1,2和3的摄像机: C1
  • 显示所有具有1,2和4功能的摄像机: C2
  • 显示所有具有功能1和2的摄像机: C1,C2C3

这是我做的(它的工作原理,但它真的很难看,不想使用它):

SELECT * FROM camera c

WHERE c.id IN (    
    (SELECT c.id FROM camera c JOIN cameras_features f ON (c.id=f.camera_id)
    WHERE f.feature_id=1)
        q1 JOIN -- simple intersect
    (SELECT c.id FROM camera c JOIN cameras_features …
Run Code Online (Sandbox Code Playgroud)

mysql sql relational-division sql-match-all

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

在迭代循环中连接字符串:+ =不能按预期工作

我有本地表和字符串,必须从其值填充:

    DECLARE @#SomeTable  TABLE ( some columns ..)
    DECLARE @SomeString  varchar(8000) = 'init string'
Run Code Online (Sandbox Code Playgroud)

迭代它

    WHILE EXISTS(SELECT * FROM  @#SomeTable)
     BEGIN
        // [somecolumn] is declared temp variable
        SELECT TOP 1 @somecolumn = somecolumn FROM  @#SomeTable

        PRINT 'before ' + @SomeString // 'init string'
        PRINT [some values from SomeTable]  // this OK
        SET @SomeString += [some values from SomeTable] 
        PRINT 'after ' +  @SomeString //'init string' UPDATE NOT TAKE PLACE!!!!

        DELETE  @#SomeTable Where somecolumn = @somecolumn
     END
Run Code Online (Sandbox Code Playgroud)

我发现连接失败了.为什么?

编辑:

这是一段原始代码:

    /*Represents …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server temp-tables

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

单个表中的多个查询结果

我有这个问题:

select sum(QTYINSTOCK * AVGPRICE) as Albums 
from inventoryinfo
WHERE Category = 'Albums'
Run Code Online (Sandbox Code Playgroud)

它返回:

Albums
$660.80
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个查询中运行多个查询并在单个表中返回?例如:

select sum(QTYINSTOCK * AVGPRICE) as Albums from inventoryinfo
WHERE Category = 'Albums'
select sum(QTYINSTOCK * AVGPRICE) as Prints from inventoryinfo
WHERE Category = 'Prints'
select sum(QTYINSTOCK * AVGPRICE) as Frames from inventoryinfo
WHERE Category = 'Frames'


Albums  |  $660.80
Prints  |  $123.00
Frames  |  $67.00
Run Code Online (Sandbox Code Playgroud)

======看起来像是一致意见是使用联合结果并没有像我想的那样格式化,它返回

Albums
660.80
123.00
67.00
Run Code Online (Sandbox Code Playgroud)

sql

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

有没有办法确保字段的内容是NULL或UNIQUE

我有一个SQL Server 2012数据库.我调用的表REFERENCE有一个名为的列LOCATOR.

我的用户正在输入数据,但有时他们会输入两个不同的行LOCATOR.有没有办法让我创建一个错误,只有LOCATOR它不为空时才出现?

sql-server sql-server-2012

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

SELECT子句使用IN ...非常慢?

你们可以查看以下对Oracle DB的查询并指出错误:

SELECT t1.name FROM t1, t2 WHERE t1.id = t2.id AND t2.empno IN (1, 2, 3, …, 200)
Run Code Online (Sandbox Code Playgroud)

查询统计:

  • 所用时间:10.53秒.

指数:

  • t2.empno 被编入索引.

  • t1.id 被编入索引.

  • t2.id 被编入索引.

更新


上面的查询只是我使用的查询的示例副本.下面是一个更真实的形式

解释计划 解释计划

查询:

SELECT 
    PRODUCT_REPRESENTATION_SK 
FROM 
    Product_Representation pr 
    , Design_Object do
    , Files files  
    ,EPS_STATUS epsStatus 
    ,EPS_ERROR_CODES epsError
    ,VIEW_TYPE viewTable  
WHERE  
    pr.DESIGN_OBJECT_SK = do.DESIGN_OBJECT_SK 
    AND  pr.LAYER_NAME !='Layer 0' 
    AND  epsStatus.EPS_STATUS_SK = pr.EPS_STATUS  
    AND epsError.EPS_ERROR_CODE = pr.EPS_ERROR_CODE 
    AND viewTable.VIEW_TYPE_ID = pr.VIEW_TYPE_ID 
    AND  files.pim_id = do.PIM_ID 
    AND  do.DESIGN_OBJECT_ID IN
        (
147086,149924,140458,135068,145197,134774,141837,138568,141731,138772,143769,141739,149113,148809,141072,141732,143974,147076,143972,141078,141925,134643,139701,141729,147078,139120,137097,147072,138261,149700,149701,139127,147070,149702,136766,146829,135762,140155,148459,138061,138762.............................................  200 such …
Run Code Online (Sandbox Code Playgroud)

sql oracle sqlperformance sql-tuning

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

ORA-00913:oracle子查询中的值太多了

我要求获取扩展到候选人的所有工作机会以及候选人最终被雇用的工作机会.我创建了两个单独的查询,一个用于捕获所有要约,另一个用于捕获每个候选人最终被雇用的作业的子查询.当我将两个查询组合在一起时出现问题我得到了ORA-00913:值太多了.有什么建议?

SELECT DISTINCT h.pi_candidate_num,
                h.parent_pi_number,
                h.associate_name,
                j.job_family_name,
                j.organization_name,
                j.title,
                e.contest_number,
                e.pi_his_itm_app_trk_creation_dt offer_date
FROM   wc_hired_interns_fa h
INNER  JOIN wc_application_event_f e
ON     h.pi_candidate_num = e.pi_candidate_num
INNER  JOIN wc_job_information_d j
ON     e.job_info_row_wid = j.row_wid
WHERE  e.pi_his_itm_app_trk_creation_dt IN
       (SELECT DISTINCT e.pi_his_itm_app_trk_creation_dt
        FROM   wc_application_event_f e
        INNER  JOIN wc_hired_interns_fa h
        ON     h.pi_candidate_num = e.pi_candidate_num
        INNER  JOIN wc_job_information_d j
        ON     e.job_info_row_wid = j.row_wid
        WHERE  j.job_family_name IN ('MDP', 'ELP', 'Emerging Leader Program', 'Other')
        AND    e.pi_his_itm_app_trk_sts_name = 'Extended'
        AND    e.pi_his_itm_app_trk_step_name = 'Offer'
        AND    j.title NOT IN ('Student Ambassador Program …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

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