def fetchProposalByStudio(studioId: Int): List[ProposalDetails] = {
ConnectionPoolManager.getDB(config = appConfig).localTx { implicit session: DBSession =>
logger.info("Querying proposal table to fetch all the proposals")
SQL("""SELECT [except name] p.id, id, proposal_title, challenge, possible_solution, explanation,
| submission_date, status, submitted_by, remark
| FROM proposal p inner join knolder k on k.id = p.knolder_id
| where k.studio_id =? order by p.id desc""".stripMargin)
.bind(studioId)
.map(rs =>
ProposalDetails(
rs.int("id"),
rs.int("id"),
rs.string("proposal_title"),
rs.string("challenge"),
rs.string("possible_solution"),
rs.string("explanation"),
rs.string("submission_date"),
Some(ProposalStatus.withName(rs.string("status"))),
rs.string("submitted_by"),
rs.string("remark"),
**rs.string("name")**
)
)
.list().apply()
}}
我不想在我的查询中获取这个列名,但是没有在查询中包含这个列名,我会因为使用case类而得到这个错误。
13:28:24.446默认-akka.actor.Default-dispatcher-8 INFO c.k.l.b.ProposalImpl -在获取提案时出了问题。异常消息:错误:"[“位置:8”处或附近的语法错误
发布于 2022-03-04 13:16:21
有语法问题的味道..。也许:
SELECT [except name] -- should be
SELECT `except name` -- in mysql发布于 2022-03-04 13:30:32
如果不希望SQL结果集中有特定列,则只需在SELECT中不提及它。
没有SELECT * EXCEPT FirstName FROM person的概念--如果Person有FirstName, LastName, Age, Address而您不想要FirstName,则不要将它放在选择列表中:
SELECT LastName, Age, Address FROM Person
^^^^^^^
no FirstName mentioned here提到你想要的每一列,不要提到你不想要的任何一栏。
如果投诉是“但有527个专栏,我只想要一个”--你可以这样做:
SELECT CONCAT(column_name, ',') FROM information_schema.columns WHERE table_name = 'Person' and column_name <> 'FirstName'它产生的结果集如下:
LastName,
Age,
Address,
... 523 other columns然后您可以复制结果集并将其粘贴到您的代码中,它的末尾已经有逗号了。
如果希望所有列都放在一行上,请使用GROUP_CONCAT或使用体面的文本编辑器将\r\n替换为空。如果你想用后排包围列名,把它放在凹.这里的最后一点是,您是一个软件开发人员:您可以编写编写代码的代码,然后可以复制输出,这是有效的代码,并将其粘贴到其他代码中。
https://stackoverflow.com/questions/71348279
复制相似问题