我必须增加group_concat_max_len.我不能通过preparestatement做到这一点,我也不能在mysql my.conf文件中做到这一点.
我在mysql文档中发现有一个选项可以在url中传递会话变量.但是没有例子,我试着这样做:
jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len:204800
Run Code Online (Sandbox Code Playgroud)
我有这个例外:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 ':204800' at line 1
Run Code Online (Sandbox Code Playgroud)
我也像这样尝试过:
jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len,204800
Run Code Online (Sandbox Code Playgroud)
因为官方文件说:
sessionVariables
A comma-separated list of name/value pairs to be sent as SET SESSION ... to the server when the driver connects.
Since version: 3.1.8
Run Code Online (Sandbox Code Playgroud)
有任何想法吗???
我在使用phpmyadmin创建表时遇到问题,这会给我以下错误:
#1089 - 前缀键不正确; 使用的关键部分不是字符串,使用的长度比关键部分长,或者存储引擎不支持唯一的前缀键
这是我的查询:
CREATE TABLE `b2b`.`users` ( `id` BIGINT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(30) NOT NULL ,
`surnames` VARCHAR(80) NOT NULL ,
`birthdate` DATE NOT NULL ,
`drivingdoc` VARCHAR(20) NOT NULL ,
`acdate` DATE NOT NULL ,
`countrydoc` VARCHAR(20) NOT NULL ,
`province` VARCHAR(20) NOT NULL ,
`locality` VARCHAR(35) NOT NULL ,
`address` VARCHAR(150) NOT NULL ,
`number` VARCHAR(20) NOT NULL ,
`flat` VARCHAR(20) NOT NULL ,
`door` VARCHAR(20) NOT NULL ,
`description` VARCHAR(2000) NOT NULL …
Run Code Online (Sandbox Code Playgroud) 我需要一个完整的查询,可以将其放入报表显示工具(如Crystal Reports或Report Writer).
我几乎得到了这个工作,但我似乎无法将Grand Totals排在底部.
SQL Fiddle不会构建这个表,说没有足够的内存.(???)所以,我所能做的只是粘贴在这里.
这是我的示例表:
CREATE TABLE [dbo].[jp2Invoice](
[Id] [int] IDENTITY(1,1) NOT NULL,
[InvoiceNumber] [varchar](20) NOT NULL,
[Subtotal] [decimal](9, 4) NOT NULL,
[Taxable] [varchar](1) NULL,
[TaxRate] [decimal](9, 4) NULL,
[TaxableAmount] [decimal](9, 4) NOT NULL,
[NontaxableAmount] [decimal](9, 4) NOT NULL,
[Tax] [decimal](9, 4) NOT NULL,
[Total] [decimal](9, 4) NOT NULL,
[AmountTendered] [decimal](9, 4) NOT NULL,
[ChangeAmount] [decimal](9, 4) NOT NULL,
[AmountDue] [decimal](9, 4) NOT NULL,
[ChargeAmount] [decimal](9, 4) NOT NULL,
CONSTRAINT [PK_jp2Invoice] PRIMARY KEY CLUSTERED ([Id] …
Run Code Online (Sandbox Code Playgroud) 我需要锁定代码特定区域中的表。
所以我用以下方法锁定我的桌子:
LOCK TABLE christmas_game WRITE;
效果很好。
现在我需要SELECT
在这张桌子上放东西,所以我这样做:
SELECT SQL_NO_CACHE prize
FROM christmas_game
WHERE user_id = {$this->user_id}
ORDER BY created_at DESC
LIMIT 2
Run Code Online (Sandbox Code Playgroud)
这也很好用。但这由于某种原因根本不起作用:
SELECT prize
FROM christmas_game
WHERE DATE(created_at) = CURDATE()
AND user_id != '{$uniqId}'
GROUP BY prize
UNION
SELECT prize
FROM christmas_game
WHERE user_id = {$user->user_id}
AND user_id != '{$uniqId}'
AND prize IN ('promo_1', 'promo_2')
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:Table 'christmas_game' was not locked with LOCK TABLES
。显然UNION
这里有问题,因为没有它两个查询都可以正常工作。
这是为什么 ?
这是一个基本的select语句,它从'select'开始,然后是来自一个表的所有行.为什么会有这样的功能?我知道使用列和表别名,或命名一个名称为"AS something"的列.我已经多次看过这个,但从来不知道它想要表演的是什么.
SELECT '' AS prSkipCustomInfo
, '' AS WBS1
, '' AS WBS2
, '' AS WBS3
, '' AS SubLevel1
, '' AS SubLevel2
, '' AS SubLevel3
, '' AS WBS1Name
, '' AS ProjectManager
, '' AS Principal
, '' AS Supervisor
, '' AS ClientID
, '' AS ContactID
, '' AS ChargeType
, '' AS revType
, '' AS currencyCodeProj
, '' AS currencyCodeBill
, '' AS currencyCodeFunct
, '' AS currencyCodePres
, 0 …
Run Code Online (Sandbox Code Playgroud)