На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> Создать поле , MySQL v5.7x
    Задачка. MySQL v5.7x.
    Без процедур и функций, одним запросом DQL\DML (можно переменные) заполнить таблицу данными матрицы n x m типа ТАБЛИЦА( y , x , value ) , где y и x - всевозможные координаты ячеек (нужно расчертить игральную доску), а value - произвольное значение.

    Мои комментарии в скрипте:
    ExpandedWrap disabled
      SET
          @`height` := 10 ,
          @`width` := 10 ,
          @`i` := 0 ;
       
      DROP TEMPORARY TABLE IF EXISTS `t_field` ;
      CREATE TEMPORARY TABLE IF NOT EXISTS `t_field`(
          `id` BIGINT UNSIGNED NOT null COMMENT 'идентификатор' ,
          `y` SMALLINT UNSIGNED NOT null COMMENT 'y' ,
          `x` SMALLINT UNSIGNED NOT null COMMENT 'x' ,
       
          UNIQUE( `y` , `x` ) ,
          PRIMARY KEY( `id` )
      ) COMMENT 'таблица' IGNORE AS
      SELECT
          cast( 1 + @`i` % @`height` AS UNSIGNED ) AS `y` ,
          cast( 1 + ( @`i` / @`height` ) % @`width` AS UNSIGNED ) AS `x` ,
          ( @`i` := @`i` + 1 ) AS `id` -- нужен скрытый идентификатор записи, как в Firebird
      FROM
          -- нужен генератор записей, как в PgSql
          `mysql`.`user` AS `u1` ,
          `mysql`.`user` AS `u2` ,
          `mysql`.`user` AS `u3` ,
          `mysql`.`user` AS `u4` ,
          `mysql`.`user` AS `u5` ,
          `mysql`.`user` AS `u6` ,
          `mysql`.`user` AS `u7`
      GROUP BY
          1 , 2 ;
       
      SELECT * FROM `t_field` ;
    Сообщение отредактировано: Tishaishii -
      mysql.user так себе генератор записей... лучше взять для этих целей mysql.help_relation

      Да, кстати... а вопрос-то какой?
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0198 ]   [ 15 queries used ]   [ Generated: 24.04.24, 11:50 GMT ]