Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

20.09.2008, 17:29
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Сообщение от ++Norton++
Naydav
Если я правильно понял, то попробуй так:
Код:
SELECT id, name, age FROM user INNER JOIN user_addithion ON user.id=user_addithion.userID AND
user_addithion.someID=38 GROUP BY id;
Выведет юзеров, у которых user.id=user_addithion.userID. Соответственно их value будет равно 1, а остальных 0.
Мне нужно получить всех!!! юзеров, к каждому из которых добавляеться дополнительное поле 1 или 0(или пусто), которое береться в зависимости от наличия записи в другой таблице
|
|
|

21.09.2008, 16:19
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
Naydav, используй в качестве последнего поля конструкцию if
т.е. Select ...., IF(условие,1,0)
Примерно так (правильность не гарантирую, писал прям сюда, не проверял т.к. нет данных  но принцип такой)
SELECT *, if(`u`.`id`=`ua`.`userid` AND `ua`.`someid`=38,1,0)
FROM `user` as `u` LEFT JOIN `user_addithion` as `ua` ON `u`.`id`=`ua`.`userid`
|
|
|

22.09.2008, 22:04
|
|
Участник форума
Регистрация: 20.07.2008
Сообщений: 177
Провел на форуме: 625939
Репутация:
54
|
|
MySQL ERROR : 1 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation 'like'
ставил ставил, на mySQL 4-5 c разными кодировками, все равно не работает, хотя устаналивается нормально...
Последний раз редактировалось Chode; 22.09.2008 в 22:06..
|
|
|

23.09.2008, 01:11
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
Сообщение от Chode
MySQL ERROR : 1 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation 'like'
ставил ставил, на mySQL 4-5 c разными кодировками, все равно не работает, хотя устаналивается нормально...
Дело в том, что ты пытаешся сравнить строки с разной коллацией... приводи все к одной и сравнивай (либо базу к cp1251, либо строку к латин_шведиш)
|
|
|

23.09.2008, 01:14
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
Сообщение от Shaitan-Devil
Нужно осуществить поиск по БД.Т.е мы имеем опр. данные но не знаем в какой они таблиц,какой запрос нужно сформировать,или как это осуществить?
http://en.wikipedia.org/wiki/Full_text_search
http://ru.wikipedia.org/wiki/Полнотекстовый_поиск
А оттуда уже пляши
|
|
|

23.09.2008, 10:02
|
|
Участник форума
Регистрация: 30.08.2008
Сообщений: 128
Провел на форуме: 668329
Репутация:
106
|
|
скрипт форума smf 2.0 работает на PostgreSQL /MySQL.
Если сначала он будет работать на MySQL, то можно ли будет потом "преобразовать" данные из MySQL в PostgreSQL ?
|
|
|

23.09.2008, 12:20
|
|
Участник форума
Регистрация: 20.11.2006
Сообщений: 172
Провел на форуме: 539954
Репутация:
106
|
|
Вроде можно. Скрипт называется neomy2pg. Вот здесь есть некоторая информация о нем:
_http://web.opennet.ru/opennews/art.shtml?num=6917
|
|
|

26.09.2008, 22:58
|
|
Участник форума
Регистрация: 20.11.2006
Сообщений: 172
Провел на форуме: 539954
Репутация:
106
|
|
Мне кажется, можно только как-то так:
Код:
SELECT * FROM table1, table2, table3, tableN WHERE something=code
Тоесть осуществлять поиск по всем таблицам базы, задав условие, которое будет равняться этому самому коду.
|
|
|

26.09.2008, 23:44
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
526
|
|
Сообщение от UnPazz
mySQL база состоит из 20 таблиц. Нужно найти кусок кода - слово. Как осуществить поиск по все базе?
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
|
|
|

27.09.2008, 03:29
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Сообщение от UnPazz
скрипт форума smf 2.0 работает на PostgreSQL /MySQL.
Если сначала он будет работать на MySQL, то можно ли будет потом "преобразовать" данные из MySQL в PostgreSQL ?
PHP код:
<?php
$source = "/home/shaggy/shaggy.sql";
$output = "/home/shaggy/pgtest.sql";
$enum = 'varchar(10)'; // convert enum to this
if ( !file_exists($source) ) {
die("File not found: $sourcen");
}
$fd = fopen($source, "r");
$result = fread($fd, filesize($source));
fclose($fd);
$result = mysql2postgre($result);
$fd = fopen($output, "w");
if (fwrite($fd, $result)) {
echo "OKn";
} else {
echo "Failedn";
}
fclose($fd);
function mysql2postgre($source) {
global $enum;
$result = $source;
$result = preg_replace('/Type=MyISAM/i', '', $result);
// convert line comments
$result = preg_replace("/#(.*)/", '--$1', $result);
// and compress newlines
$result = preg_replace("/n{2,}/", "nn", $result);
// get rid of proprietary code
$result = preg_replace("/DROP TABLE IF EXISTSW+.+/i", '', $result);
// indices
$result = preg_replace("/(.*)UNIQUE KEY.+((.+))/i",
"$1UNIQUE ($2)", $result);
// a little hack to save primary keys
$result = preg_replace("/(.*)PRIMARY KEY.+((.+))/i",
"$1PRIMARY ($2)", $result);
$result = preg_replace("/,n.*KEYW.+((.+))/i",
"n-- was KEY ($1)", $result);
$result = preg_replace("/(.*)PRIMARY.+((.+))/i",
"$1PRIMARY KEY (\2)", $result);
$result = preg_replace("/(.*?)(w+).+auto_increment/i",
'$1$2 SERIAL', $result);
// Postgre doesn't support the binary modifier
$result = preg_replace('/binary/i', '', $result);
// type transformations
$result = preg_replace('/enum(.+)/i', $enum, $result);
$result = preg_replace('/tinyint(.+)/i', 'smallint', $result);
$result = preg_replace('/smallint(.+)/i', 'smallint', $result);
$result = preg_replace('/meduimint(.+)/i', 'int', $result);
$result = preg_replace('/int(.+)/i', 'int', $result);
// Most of my default dates are '0000-00-00'
$result = preg_replace("/datetime(.*) default '.*'/i",
'datetime$1', $result);
$result = preg_replace("/date(.*) default '.*'/i",
'date$1', $result);
return $result;
}
?>
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|