0

同じステートメントでエイリアスを使用するにはどうすればよいですか? body以下のステートメントの別名を参照してください。sum(length(body) で使用すると、unknown column.

SELECT substring_index(userBody, ' ', 60) as body, SUM(LENGTH(body)-LENGTH(REPLACE(body,' ',''))+1) as wordCount 
from articles where artcId = 10;
4

3 に答える 3

3

body次の選択列ではエイリアス名を使用できません。次のセクションで同じ「エイリアス」ブロックを使用することをお勧めします。詳細については、以下のクエリを参照してください。

SELECT 
  substring_index(userBody, ' ', 60) AS body,
  SUM(
    LENGTH(substring_index(userBody, ' ', 60)) - LENGTH(REPLACE(substring_index(userBody, ' ', 60),' ',''))+1
  ) AS wordCount
FROM articles
WHERE artcId = 10;
于 2013-01-09T05:22:04.000 に答える
0

エイリアス列名を使用して別の列のデータを取得することはできません。

以下で説明するように、サブクエリを使用するか、別の列に同じ関数を使用できます。

サブクエリの使用

SELECT body, SUM(LENGTH(body)-LENGTH(REPLACE(body,' ',''))+1) AS wordCount 
FROM (SELECT SUBSTRING_INDEX(userBody, ' ', 60) AS body 
      FROM articles WHERE artcId = 10) AS A 

または同じ機能を使用する

SELECT SUBSTRING_INDEX(userBody, ' ', 60) AS body, 
       SUM(LENGTH(SUBSTRING_INDEX(userBody, ' ', 60))-LENGTH(REPLACE(SUBSTRING_INDEX(userBody, ' ', 60),' ',''))+1) AS wordCount 
FROM articles WHERE artcId = 10;
于 2013-01-09T05:32:40.900 に答える
0

できません。または、サブクエリを使用することもできます。

SELECT  body,
        SUM(LENGTH(body)-LENGTH(REPLACE(body,' ',''))+1) as wordCount 
FROM
    (
        SELECT substring_index(userBody, ' ', 60) as body
        from articles 
        where artcId = 10
    ) s
于 2013-01-09T05:32:54.610 に答える